We will find a way, we always have.

-interstellar

Problem Solving/๋ฐฑ์ค€

[๋ฐฑ์ค€] 1673๋ฒˆ: ๐Ÿ—์น˜ํ‚จ ์ฟ ํฐ๐Ÿ— - ํŒŒ์ด์ฌ

Redddy 2022. 4. 26. 22:33

๐Ÿ“Ž๋ฌธ์ œ๋งํฌ: https://www.acmicpc.net/problem/1673

 

1673๋ฒˆ: ์น˜ํ‚จ ์ฟ ํฐ

๊ฐ•๋ฏผ์ด๋Š” ์น˜ํ‚จ ํ•œ ๋งˆ๋ฆฌ๋ฅผ ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋Š” ์น˜ํ‚จ ์ฟ ํฐ์„ n์žฅ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด ์น˜ํ‚จ์ง‘์—์„œ๋Š” ์น˜ํ‚จ์„ ํ•œ ๋งˆ๋ฆฌ ์ฃผ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ๋„์žฅ์„ ํ•˜๋‚˜์”ฉ ์ฐ์–ด ์ฃผ๋Š”๋ฐ, ๋„์žฅ์„ k๊ฐœ ๋ชจ์œผ๋ฉด ์น˜ํ‚จ ์ฟ ํฐ ํ•œ ์žฅ์œผ๋กœ ๊ตํ™˜

www.acmicpc.net

 

๐Ÿ’ผ์„œ๋ก 

์ทจํ‚จ๋จน๊ณ ์‹ถ๋‹ค๐Ÿ—

 

๐Ÿงฉ๋ฌธ์ œ ํ•ด์„

์น˜ํ‚จ์„ ์ฃผ๋ฌธํ•˜๋Š”๋ฐ์—๋Š” ์ฟ ํฐ์ด ํ•„์š”ํ•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์น˜ํ‚จ ํ•œ๋งˆ๋ฆฌ ์‹œํ‚ฌ๋•Œ๋งˆ๋‹ค ๋„์žฅ์„ ํ•˜๋‚˜์ฐ์–ด์ฃผ๋Š”๋ฐ k๊ฐœ์˜ ๋„์žฅ์„ ์ฐ์œผ๋ฉด ํ•œ๊ฐœ์˜ ์ฟ ํฐ๊ณผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜ ์ด๋ ‡๊ฒŒ ๊ตฌ๋งคํ•œ ์น˜ํ‚จ์—๋„ ๋„์žฅ์„ ์ฐ์–ด์ค€๋‹ค!
๋˜ํ•œ ๋ฌธ์ œ์˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๊ฐ€ ์ฃผ์–ด์ง€์ง€ ์•Š๊ธฐ ๋–„๋ฌธ์— ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋Œ๋ฆฌ๊ณ  ์‹œ์Šคํ…œ ์ข…๋ฃŒ ์ฒ˜๋ฆฌ๋„ ์ž˜ ํ•ด์ค˜์•ผํ•œ๋‹ค.

 

๐Ÿ“˜ํ’€์ด

1. ์šฐ์„  ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฟ ํฐ n๊ฐœ์™€ ์ฟ ํฐ n๊ฐœ๋กœ ๊ตฌ๋งคํ•ด ์–ป์€ ๋„์žฅ์œผ๋กœ ์น˜ํ‚จ์„ ๊ตฌ๋งคํ•œ๋‹ค.
2. ๋‹ค์Œ ์ฟ ํฐ n๊ฐœ๋กœ ๊ตฌ๋งคํ•ด ์–ป์€ ๋„์žฅ์œผ๋กœ ๊ตฌ๋งคํ•œ ์น˜ํ‚จ์—์„œ ์–ป์€ ๋„์žฅ๊ณผ ์‚ฌ์šฉ๋˜์ง€ ์•Š์€ ๋„์žฅ์„ ๋”ํ•ด ์น˜ํ‚จ์„ ๊ตฌ๋งคํ•œ๋‹ค.

 

 

โ˜1์ฐจ์‹œ๋„โœŒ

์ฒ˜์Œ์—๋Š” ์ด์™€ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์งœ๋ณด์•˜๋‹ค.

๊ฒฐ๊ณผ๋Š”..!!! ๋ฐ”๋กœ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด์œ ๋Š” ์ž…๋ ฅ์ด ๋ฌดํ•œ์œผ๋กœ ๋ฐ›๊ธฐ๋•Œ๋ฌธ์— ์ €๋ ‡๊ฒŒ while True๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์ง€๋งŒ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ์‹ ํ˜ธ๊ฐ€ ๋“ค์–ด์™€๋„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ์‹ ํ˜ธ๋ž€ Ctrl + D ๋˜๋Š” Ctrl + C ์ด๋‹ค. 

Ctrl + D๋Š” sys.stdin.readlines ๋กœ ์ž…๋ ฅ์„ ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š”๋ฐ Ctrl + D๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ข…๋ฃŒ๋œ๋‹ค. ๋˜ ํ”„๋กœ๊ทธ๋žจ ๊ฐ•์ œ ์ข…๋ฃŒํ‚ค๋Š”

Ctrl + C ์ด๋‹ค. ๊ทธ ์นดํ”ผ ์•ค ํŽ˜์ด์ŠคํŠธ์—์„œ์˜ ์ปจํŠธ๋กค์”จ๊ฐ€ ์•„๋‹Œ ํ‚ค๋ณด๋“œ์ธํ„ฐ๋ฃจํ‘ธํŠธ์ด๋‹ค.

Ctrl + C๊ฐ€ ์ž…๋ ฅ๋์„๋•Œ ์œ„์˜ ํ”„๋กœ๊ทธ๋žจ์€ KetboardInterrupt๋ž€ ๋ฌธ์ž๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด์„œ ์ข…๋ฃŒ ๋ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” ์ด๊ฒƒ์„ ์›ํ•œ๊ฒŒ ์•„๋‹ˆ๋‹ค!

 

๊ทธ๋ž˜์„œ ์ƒˆ๋กœ ๋‹ค์‹œ ์ง  ์ฝ”๋“œ!! (์• ์ดˆ์— ์ € ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๊ณ ํ•ด๋„ ์œ„์— ์ฝ”๋“œ๋Š” ๋ฐ˜๋ก€๊ฐ€ ์žˆ์—ˆ๋‹คใ…Žใ…Ž 7 2)

 

โœŒ2์ฐจ์‹œ๋„

 

try์™€ except ๋ฌธ๋ฒ• ์‚ฌ์šฉ์œผ๋กœ ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค. ํŒŒ์ด์ฌ ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด์„œ๋Š” ๋‚˜์ค‘์— ์ ์„ ๊ณ„ํš์ด ์žˆ์œผ๋‹ˆ ์ž ์‹œ ์ œ๊ปด๋‘๊ณ (exit()๋ผ๋Š” ๋ฌธ๋ฒ•๋„ ์ด๋ฒˆ์— ์ฒ˜์Œ ์ ‘ํ–ˆ๋‹ค.) ๋Œ€์ถฉ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. try except๋ฌธ์„ ์“ฐ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์—๋Ÿฌ ์•ˆ๋‚œ ํ‹ฐ(?)๋ฅผ ๋‚ผ์ˆ˜ ์žˆ๋‹คใ…‹ใ…Žใ…‹

2์ฐจ ์‹œ๋„

 

 

์ฝ”๋“œ๋ฅผ ์ฃผ์ €๋ฆฌ ์ฃผ์ €๋ฆฌ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

import sys
input = sys.stdin.readline

try:
    while True:
        n, k = map(int, input().rstrip().split()) #ํ˜„์žฌ ๊ฐ–๊ณ  ์žˆ๋Š” ์ฟ ํฐ๊ณผ ๊ตํ™˜๊ฐ€๋Šฅ๋„์žฅ๊ฐฏ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์Œ
        chicken = n + (n//k) # ์ฟ ํฐ(n)๊ณผ ๊ทธ ์ฟ ํฐ์‚ฌ์šฉ์œผ๋กœ ์–ป์€ ๋„์žฅ์œผ๋กœ ๊ตฌ๋งคํ•œ ์น˜ํ‚จ(n//k) ๊ฐฏ์ˆ˜
        # ๋„์žฅ๊ฐฏ์ˆ˜๊ฐ€ k๋ณด๋‹ค ์ ์„๋•Œ๊นŒ์ง€ ์‹คํ–‰
        while n>= k:
        	# ํ˜„์žฌ ๊ฐ–๊ณ ์žˆ๋Š” ๋„์žฅ์€ ์•„๊นŒ ์ฟ ํฐ์‚ฌ์šฉ์œผ๋กœ ์–ป์€ ๋„์žฅ์œผ๋กœ ๊ตฌ๋งคํ•œ ์น˜ํ‚จ(n//k)๊ณผ ์ €๋ฒˆ์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•œ ๋„์žฅ(n%k)
            n = (n//k) + (n%k) 
            chicken += n//k # ๋„์žฅ์œผ๋กœ ์ฟ ํฐ ๋งŒ๋“ค์–ด์„œ ์น˜ํ‚จ ๊ตฌ๋งค
        print(chicken)
except:
    exit()

 

์—ญ์‹œ ๋ˆ์งˆ๊ธฐ๊ฒŒ ์ƒ๊ฐํ•˜์—ฌ ๋ฌธ์ œ์˜ ๋‹ต์„ ์œ ์ถ”ํ•ด๋ƒˆ์„๋•Œ ์พŒ๊ฐ์€ ๋ฏธ์ณค๋‹ค ใ…Ž