처음 문제를 봤을 때는 어려워보였지만 지그재그로 이동할때 같은 줄의 분수의 분자,분모의 합이 동일하다는 것을 알수있었고 그 합이 줄이 바뀔때 마다 1씩 증가한다는 점을 이용하여 문제를 풀었다.
내가 푼 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import java.util.Scanner;
public class 분수찾기 {
public static void main(String[] args) {
int flag = 2; //1/1일때 분자 분모합은 2이므로 2로시작
int cnt =0 ,num1=0,num2=0; // 반복횟수를 이용해 x번째까지 반복 num1,num2는 분모 분자가 될 수
Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
int chk = 1; //분자를 세는건지 분모를 세는건지 판단 하나의 줄을 돌고나면
//포문을 돌 분자 분모의 기준이 변화 함으로 -1을 곱해줌
while(num1==0 ) {
for(int i=1;i<flag;i++) {
cnt++;
if(cnt==x) { //x번째에 도달하면?
num1 = i;
num2 = flag-i;
break;
}
}
chk*=(-1);
flag++;
}
if(chk>0) {
System.out.println(num1+"/"+num2);
}
else {
System.out.println(num2+"/"+num1);
}
sc.close();
}
}
|
cs |
'IT > 알고리즘' 카테고리의 다른 글
백준 10250 ACM호텔 (0) | 2020.01.10 |
---|---|
백준2869 달팽이는 올라가고싶다(수학) (2) | 2020.01.04 |
백준 2292 벌집 (수학) (0) | 2020.01.03 |
프로그래머스 lv2 가장 큰 수 (0) | 2019.11.19 |
프로그래머스 lv2 프린터 (0) | 2019.11.19 |