[Baekjoon] 1193 - πŸ“λΆ„μˆ˜ μ°ΎκΈ°

ChobbyΒ·2023λ…„ 10μ›” 10일
1

Baekjoon

λͺ©λ‘ 보기
29/108

πŸ˜€λ¬Έμ œ

λ¬΄ν•œνžˆ 큰 배열에 λ‹€μŒκ³Ό 같이 λΆ„μˆ˜λ“€μ΄ μ ν˜€μžˆλ‹€.

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번째 λΆ„μˆ˜λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.


πŸ˜μž…λ ₯

  • 첫째 쀄에 X(1 ≀ X ≀ 10,000,000)κ°€ 주어진닀.

πŸ˜‚μΆœλ ₯

첫째 쀄에 λΆ„μˆ˜λ₯Ό 좜λ ₯ν•œλ‹€.


🀣예제

예제 μž…λ ₯ 1 
1
예제 좜λ ₯ 1 
1/1
예제 μž…λ ₯ 2 
2
예제 좜λ ₯ 2 
1/2
예제 μž…λ ₯ 3 
3
예제 좜λ ₯ 3 
2/1
예제 μž…λ ₯ 4 
4
예제 좜λ ₯ 4 
3/1
예제 μž…λ ₯ 5 
5
예제 좜λ ₯ 5 
2/2
예제 μž…λ ₯ 6 
6
예제 좜λ ₯ 6 
1/3
예제 μž…λ ₯ 7 
7
예제 좜λ ₯ 7 
1/4
예제 μž…λ ₯ 8 
8
예제 좜λ ₯ 8 
2/3
예제 μž…λ ₯ 9 
9
예제 좜λ ₯ 9 
3/2
예제 μž…λ ₯ 10 
14
예제 좜λ ₯ 10 
2/4

πŸ˜ƒμΆœμ²˜

  • 문제λ₯Ό λ§Œλ“  μ‚¬λžŒ: author6
  • 문제의 μ˜€νƒ€λ₯Ό 찾은 μ‚¬λžŒ: deadlylaid
  • μ–΄μƒ‰ν•œ ν‘œν˜„μ„ 찾은 μ‚¬λžŒ: djm03178
  • 데이터λ₯Ό μΆ”κ°€ν•œ μ‚¬λžŒ: mj2park

πŸ˜„μ•Œκ³ λ¦¬μ¦˜ λΆ„λ₯˜

  • μˆ˜ν•™
  • κ΅¬ν˜„

πŸ˜…λ‚˜μ˜ 풀이

// λΆ„λͺ¨μ™€ λΆ„μžκ°€ μ¦κ°ν•˜λŠ” 연산을 이해해야 함
const input = require('fs').readFileSync('/dev/stdin').toString().trim()

// num 은 line번째 λŒ€κ°μ„ μ˜ λͺ‡ 번째 μ›μ†ŒμΈκ°€
let num = Number(input)
let line = 1;

// λͺ‡ 번째 λŒ€κ°μ„ μΈμ§€ νŒλ‹¨
while (num > line) {
    num -= line;
    line += 1;
}
let a, b
// μ§μˆ˜λŠ” λΆ„λͺ¨κ°€ 컀지고, ν™€μˆ˜λŠ” λΆ„μžκ°€ 증가함
if (line % 2 === 0) {
    a = num;
    b = line - num + 1;
} else {
    a = line - num + 1;
    b = num;
}

console.log(`${a}/${b}`);
profile
λ‚΄ 지식을 κ³΅μœ ν•  수 μžˆλŠ” λŒ€λ‹΄ν•¨

0개의 λŒ“κΈ€