algorithm

๋ฐฑ์ค€ 1193. ๋ถ„์ˆ˜ ์ฐพ๊ธฐ

์ˆ˜ํ˜€์ด0812 2023. 8. 28. 20:53
728x90
๋ฐ˜์‘ํ˜•

์˜ค๋Š˜ ์นœ ์‹œํ—˜ ๋ฌธ์ œ์ค‘์— bfs, dfs  ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ํ•˜์ง€ ๋ชปํ•ด์„œ ๋ณต์Šต ํ•˜๋ ค๋‹ค๊ฐ€ ์‹œํ—˜ ์นœ ๊ธฐ๋…์œผ๋กœ(?)๐Ÿ˜‚๐Ÿ˜‚๐Ÿ˜‚

๋‹จ๊ณ„๋ณ„ ์œ„์— ์•ˆ ํ‘ผ๊ฑฐ ์ค‘์— 7๋‹จ๊ณ„ ์ผ๋ฐ˜์ˆ˜ํ•™์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ธฐ๋กœํ–ˆ๋‹ค!!! 

๋Œ€๋ถ€๋ถ„ ๋ธŒ๋ก ์ฆˆ๊ณ  ๊ทœ์น™๋งŒ ์ฐพ์œผ๋ฉด ํ•ด๊ฒฐ ๊ฐ€๋Šฅํ•œ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์ธ๋ฐ ๋ถ„์ˆ˜์ฐพ๊ธฐ๊ฐ€ ๊ณจ๋จธ๋ฆฌ๊ฐ€ ์กฐ๊ธˆ ์•„ํŒ ๋‹ค ^________^

 

๋ฌธ์ œ๐Ÿค”

๋ฌดํ•œํžˆ ํฐ ๋ฐฐ์—ด์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ถ„์ˆ˜๋“ค์ด ์ ํ˜€์žˆ๋‹ค.

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)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋ถ„์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋‚ด ํ’€๐Ÿฆท

# 1193. ๋ถ„์ˆ˜ ์ฐพ๊ธฐ
N = int(input())

line = 0 # ๋Œ€๊ฐ์„  ๊ฐฏ์ˆ˜
idx = 0 # ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค (1, 3, 6, 10...)
while idx < N:
    line += 1
    idx += line # ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋Š” ๋ผ์ธ์— ์žˆ๋Š” ๋ถ„์ž์˜ ๊ฐฏ์ˆ˜ ๋งŒํผ ๋Š˜์–ด๋‚œ๋‹ค

result = []
# ๋ผ์ธ ํ™€์ˆ˜์ผ ๋–ผ
if line % 2:
    ja = idx - N + 1     # ๋ถ„์ž
    mo = line - idx + N  # ๋ถ„๋ชจ
    result.append(ja)
    result.append('/')
    result.append(mo)
else:
    ja = line - idx + N
    mo = idx - N + 1
    result.append(ja)
    result.append('/')
    result.append(mo)
    
print(''.join(map(str, result)))

๋ญ”๊ฐ€ ๋Š๋‚Œ์ ์ธ ๋Š๋‚Œ์€ ์•Œ๊ฒ ๋Š”๋ฐ ์ฐพ๊ธฐ ์‰ฝ์ง€ ์•Š์•˜์ง€๋งŒ ๋ถ„์ˆ˜๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ์ ๊ณ  ๋œฏ์–ด๋ณด๋ฉด ๊ทœ์น™์„ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๋‹ค!!  ใ…œใ…œใ…œ

N๋งŒ์„ ๊ฐ€์ง€๊ณ  ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ์–ด๋–ป๊ฒŒ ์ ์–ด์•ผํ• ์ง€๋ฅผ ์ œ์ผ ๊ณ ๋ฏผ์„ ๋งŽ์ด ํ–ˆ๋˜ ๋ถ€๋ถ„์ธ๊ฒƒ ๊ฐ™๋‹ค.....

ja = ๋ถ„์ž / mo = ๋ถ„๋ชจ ์ž…๋‹ˆ๋‹ค ใ…‹ใ…‹ใ…‹

 

 

์ฐธ๊ณ ํ•จ๋ฉด ์ข‹์„ ๊ฐœ๋…๋“ค โœ๏ธ

  • ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ถœ๋ ฅํ•˜๊ธฐ
result = [1, 2, 3, 4]
# ๊ณต๋ฐฑ์—†์ด ์ถœ๋ ฅ
print(''.join(map(str, result)))   # 1234
# ๊ณต๋ฐฑ์žˆ์ด ์ถœ๋ ฅ
print(' '.join(map(str, result)))  # 1 2 3 4
# , ์‰ผํ‘œ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ถœ๋ ฅ
print(', '.join(map(str, result))  # 1, 2, 3, 4
# ์–ธํŒจํ‚น
print(*result)                     # 1 2 3 4

 

728x90
๋ฐ˜์‘ํ˜•