알고리즘/백준

백준_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;
			}
		}
	}
}