알고리즘
백준 1193번 분수찾기 (JAVA)
박카스마시며코딩
2023. 9. 19. 20:36
https://www.acmicpc.net/problem/1193
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
저는 구현을 통해 문제를 해결하였습니다.
먼저 몇번째 대각선인지를 구하고 그 대각선의 합을 분모 분자로 나누는 방식으로 구현하였습니다.
그리고 해당 대각선이 홀수번째인지 짝수번째인지에 따라 열에서 시작하는지 행에서 시작하는지에 다르기 때문에 이부분까지 고려하여 문제를 해결하였습니다.
package BOJ.etc;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class BOJ_1193 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String result = cal(n);
System.out.println(result);
}
private static String cal(int n) {
int sum = 0;
int num = 1;
while(n > sum + num){
sum += num;
num++;
}
int a = (n - sum);
int b = num + 1 - a;
String result = a+"/"+b;
if(num % 2 != 0){
result = b+"/"+a;
}
return result;
}
}