백준 1193번 풀이 node
2022. 12. 24. 02:55ㆍ에러&&공부노트
문제 :
무한히 큰 배열에 다음과 같이 분수들이 적혀있다.
1/1 | 1/2 | 1/3 | 1/4 | 1/5 | … |
2/1 | 2/2 | 2/3 | 2/4 | … | … |
3/1 | 3/2 | 3/3 | … | … | … |
4/1 | 4/2 | … | … | … | … |
5/1 | … | … | … | … | … |
… | … | … | … | … | … |
이와 같이 나열된 분수들을 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → … 과 같은 지그재그 순서로 차례대로 1번, 2번, 3번, 4번, 5번, … 분수라고 하자.
X가 주어졌을 때, X번째 분수를 구하는 프로그램을 작성하시오.
//예제 입력 1
1
//예제 출력 1
1/1
const fs = require('fs');
const input = fs.readFileSync(0).toString().trim();
const fn_result = (input) => {
let line = top = bottom = maxNum = 0;
let num = Number(input);
while (num > maxNum) {
line += 1;
maxNum += line;
}
if (line % 2 == 0) {
// 짝수
top = num - (maxNum - line);
bottom = maxNum - num + 1;
} else {
// 홀수
top = maxNum - num + 1;
bottom = num - (maxNum - line);
}
console.log(`${top}/${bottom}`);
};
fn_result(input);
중요 내용 :
표에 규칙은 라인 별로 1/1 > 1/2, 2/1 > 3/1, 2/2, 1/3 > 1/4, 2/3, 3/2, 4/1 ..의 규칙을 가지고 있으며
라인 별 개 수는 1 3 6 10 으로 파악된다. 코드에 몇 번 째 라인인지와 해당 라인의 최고 큰 수를 구해 계산식을 만들었다.
'에러&&공부노트' 카테고리의 다른 글
백준 1931번 풀이 node (0) | 2022.12.25 |
---|---|
백준 2869번 풀이 node (0) | 2022.12.24 |
백준 2292번 풀이 node (0) | 2022.12.23 |
백준 1712번 풀이 node (0) | 2022.12.23 |
[Javascript] 백준 1260번 DFS와 BFS - node.js (0) | 2022.12.16 |