๐Ÿ˜–DEBUG/๐ŸŸกPYTHON

๋ฐฑ์ค€ 1193๋ฒˆ python ํ’€์ด

soo0s 2024. 5. 8. 18:00

 

๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ์ดํ•ด๋Š” ํ–ˆ์ง€๋งŒ ๊ทœ์น™์„ ๋ฐœ๊ฒฌํ•˜๊ณ  ๋‚˜์„œ ์ ์šฉ์„ ํ•˜๋Š” ๊ณผ์ •์ด ์–ด๋ ค์› ๋‹ค

 

์ด์™•์ด๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ• ๋•Œ ์–ด๋ ค์šด ๋ถ€๋ถ„์— ์žˆ์–ด์„œ๋Š” ๋ฌผ๋ก  ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ

 

๋‚˜๋งŒ์˜ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋งˆ์Œ๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์งœ๋ดค๋‹ค

 

์ฐธ๊ณ ํ•œ ๋‚ด์šฉ์€ ๋Œ€๊ฐ์„ ์œผ๋กœ ์ˆœ์„œ์— ๋งž๊ฒŒ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜์—ดํ–ˆ์„๋•Œ

 

1๏ธโƒฃ ํ™€์ˆ˜๋ฒˆ์งธ ์ค„

=> ๋ถ„์ž: ํ•ด๋‹น ์ค„์˜ ์‚ฌ์ด์ฆˆ์—์„œ 1์”ฉ ์ค„์–ด๋“ฆ

=> ๋ถ„๋ชจ: 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ 1์”ฉ ๋Š˜์–ด๋‚จ

 

2๏ธโƒฃ ์ง์ˆ˜๋ฒˆ์งธ ์ค„

=> ๋ถ„์ž: 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ 1์”ฉ ๋Š˜์–ด๋‚จ

=> ๋ถ„๋ชจ: ํ•ด๋‹น ์ค„์˜ ์‚ฌ์ด์ฆˆ์—์„œ 1์”ฉ ์ค„์–ด๋“ฆ

 

์œผ๋กœ ํ™€/์ง์„ ์ด์šฉํ•ด์„œ ์ฝ”๋“œ์— ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค

 

๋งจ ์ฒ˜์Œ์œผ๋กœ ์งฐ๋˜ ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

 

<์ดˆ๊ธฐ์ฝ”๋“œ>

import sys

# ์ดˆ๊ธฐ์ฝ”๋“œ
# n = int(input())
n = int(sys.stdin.readline())

c = 1
count = 0
r = n

for i in range(n):
  if c == count:
    c += 1
    count = 0
  count += 1

if c % 2 == 0:
  top = count
  bottom = (c + 1) - count

elif c % 2 != 0:
  top = (c + 1) - count
  bottom = count

result = '/'.join([str(top), str(bottom)])

# ์ดˆ๊ธฐ์ฝ”๋“œ
# print(str(top) + "/" + str(bottom))
print(result)

 

์ตœ์ดˆ์— ์งฐ๋˜ ์ฝ”๋“œ๋Š” ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ์˜ค๋‹ต์ด ๋˜์–ด์„œ

 

์ž…๋ ฅ๋ฐ›๋Š” ๋ถ€๋ถ„๊ณผ ์ถœ๋ ฅํ•˜๋Š” ๋ถ€๋ถ„์„ ์กฐ๊ธˆ ์†๋ดค๋Š”๋ฐ๋„ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋˜์—ˆ๋‹ค

 

 

๊ทธ๋ž˜์„œ ์ตœ์ข…์ ์œผ๋กœ ๋งŒ๋“  ์ฝ”๋“œ๋Š” ์นด์šดํŠธํ•˜๋Š” ๋ถ€๋ถ„์„ ์ˆ˜์ •ํ–ˆ๋‹ค

(์ด ๋ถ€๋ถ„์€ ์„œ์นญํ•˜์—ฌ ์ฐธ๊ณ ํ•˜์˜€์Œ, +๋กœ 1๋ถ€ํ„ฐ 1์”ฉ ์นด์šดํŠธํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” -๋กœ 1์”ฉ ์ฆ๊ฐํ•˜์—ฌ ์นด์šดํŠธํ•˜๋Š” ๊ฒƒ์ด ๋น ๋ฅผ ๊ฒƒ ๊ฐ™์•„์„œ)

 

๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ์„ฑ๊ณต!!

 

<์ตœ์ข…์ฝ”๋“œ>

import sys

n = int(sys.stdin.readline())

c = 1
count = 0
r = n

for i in range(n, 0, -1):
  if r <= 0:
    break
  r -= c
  count += 1
  c += 1

if count % 2 == 0:
  top = count + r
  bottom = 1 - r

elif count % 2 != 0:
  top = 1 - r
  bottom = count + r

result = '/'.join([str(top), str(bottom)])

print(result)

 

๋ผ์ธ์„ ์นด์šดํŠธํ•˜์—ฌ count ๋ณ€์ˆ˜์— ๊ฐ’์„ ๋‹ด๊ณ 

 

r์€ ํ•ด๋‹น ๋ผ์ธ์—์„œ ๋ช‡ ๋ฒˆ์งธ์— ์œ„์น˜ํ•˜๋Š”์ง€๋ฅผ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜์˜€๋‹ค

 

(r์ด 0์ด ์•„๋‹Œ ์ด์ƒ ์Œ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐ ์‹œ์— +์ด๋ฉด -๊ฐ€ ๋˜๊ณ , -๋ฅผ ์ ์šฉํ•˜๋ฉด +๊ฐ€ ๋จ)