# [Algorithm/JS] 백준 1193번 분수찾기

🔗 문제 바로가기 (opens new window)

# 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
Last Updated: 2022. 6. 5. 오후 3:42:39