# [Algorithm/JS] 백준 1193번 분수찾기
# Question
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
1/1 | 1/2 | 1/3 | 1/4 | 1/5 |
2/1 | 2/2 | 2/3 | 2/4 | ... |
3/1 | 3/2 | 3/3 | ... | ... |
5/1 | 4/2 | ... | ... | ... |
6/1 | ... | ... | ... | ... |
이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
# Input
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
# Output
첫째 줄에 분수를 출력한다.
# Example
# Input 1
1
1
# Output 1
1/1
1
# Input 2
2
1
# Output 2
1/2
1
# Input 3
3
1
# Output 3
2/1
1
# Solution
const input = require('fs').readFileSync('dev/stdin').toString().trim();
let number = Number(input);
let value = 1;
while (true) {
number -= value;
if (number <= 0) {
number += value;
break;
}
value++;
}
if (value % 2 === 1) {
console.log(`${value - (number - 1)}/${1 + (number - 1)}`);
} else {
console.log(`${1 + (number - 1)}/${value - (number - 1)}`);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17