알고리즘/백준
백준_1193 - JAVA
맏리믓
2022. 12. 22. 11:43

- 알고리즘

. 같은 우측 대각선 위에 있는 분수들은 분자와 분모의 합이 동일하다.
. 홀수 번째(분자 + 분모가 짝수) 인 대각선은 아래에서 위로 이동한다.
. 짝수 번째(분자 + 분모가 홀수) 인 대각선은 위에서 아래로 이동한다.
. 각 대각선의 분수 개수는 1부터 하나씩 늘어나며 이는 해당 대각선이 몇번째인지와 동일하다
(3번째 대각선에는 분수가 3개 존재)
. 이를 이용해 N 이 몇번째 대각선 위에 있으며 대각선 중에서 위에서 몇번째 인지 알아내면 해당 분수를 쉽게 도출 가능
- 코드
import java.io.*;
public class B_1193 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s1 = br.readLine();
int N = Integer.parseInt(s1);
int n = 1;
int range = 0;
while(true){
if(range + n < N){
range += n;
n += 1;
} else {
int a = (N - range);
int b = n - (N - range - 1);
if(n % 2 == 0){
System.out.println(a + "/" + b);
} else {
System.out.println(b + "/" + a);
}
break;
}
}
}
}