알고리즘
[백준알고리즘] 1193 - 분수찾기
DevBee
2021. 5. 25. 06:23
https://www.acmicpc.net/problem/1193
1193번: 분수찾기
첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다.
www.acmicpc.net
이 문제는 분수 모음의 개수가 등차수열을 이루며 (분모 + 분자)가 같은 분수들이 차례로 순서를 가집니다.
따라서 주어진 숫자가 먼저 몇번째 분수 모음에 속하는지 확인합니다.
각 분수 모음에서 (분모 + 분자)는 해당 모음에 속하는 (분수의 개수 + 1)입니다. 또한, 짝수의 경우 분자가 1부터 시작하고 홀수는 분모가 1로 시작합니다. 이 규칙을 그대로 코드로 구현하면 문제를 해결할 수 있습니다.
자바 코드는 다음과 같습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
if (count == 1) {
System.out.println("1/1");
} else {
int c = 1;
int i = 2;
while (true) {
if (count <= c + i) {
int a = (c + i) - count + 1;
int b = (i + 1) - a;
if (i % 2 == 0) {
System.out.println(b + "/" + a);
} else {
System.out.println(a + "/" + b);
}
break;
} else {
c += i;
i++;
}
}
}
}
}