[BOJ] 10162번 | μ „μžλ ˆμΈμ§€ (Python3)

2022. 7. 14. 15:35ㆍCoding Test/BOJ

πŸ”—λ¬Έμ œ λ³΄λŸ¬κ°€κΈ°
 

10162번: μ „μžλ ˆμΈμ§€

3개의 μ‹œκ°„μ‘°μ ˆμš© λ²„νŠΌ A B Cκ°€ 달린 μ „μžλ ˆμΈμ§€κ°€ μžˆλ‹€. 각 λ²„νŠΌλ§ˆλ‹€ μΌμ •ν•œ μ‹œκ°„μ΄ μ§€μ •λ˜μ–΄ μžˆμ–΄ ν•΄λ‹Ή λ²„νŠΌμ„ ν•œλ²ˆ λˆ„λ₯Ό λ•Œλ§ˆλ‹€ κ·Έ μ‹œκ°„μ΄ λ™μž‘μ‹œκ°„μ— 더해진닀. λ²„νŠΌ A, B, C에 μ§€μ •λœ μ‹œκ°„μ€

www.acmicpc.net

 

 

문제 μ„€λͺ…

3개의 μ‹œκ°„μ‘°μ ˆμš© λ²„νŠΌ A B Cκ°€ λ‹¬λ¦° μ „μžλ ˆμΈμ§€κ°€ μžˆλ‹€. κ° λ²„νŠΌλ§ˆλ‹€ μΌμ •ν•œ μ‹œκ°„이 μ§€μ •λ˜μ–΄ μžˆμ–΄ ν•΄λ‹Ή λ²„νŠΌμ„ ν•œλ²ˆ λˆ„λ₯Ό λ•Œλ§ˆλ‹€ κ·Έ μ‹œκ°„이 λ™μž‘μ‹œκ°„μ— λ”해진닀. λ²„νŠΌ A, B, C에 μ§€μ •λœ μ‹œκ°„은 κ°κ° 5λΆ„, 1λΆ„, 10μ΄ˆμ΄λ‹€.

λƒ‰λ™μŒμ‹λ§ˆλ‹€ μ „μžλ ˆμΈμ§€λ‘œ μš”리해야할 μ‹œκ°„ Tκ°€ μ΄ˆλ‹¨μœ„λ‘œ ν‘œμ‹œλ˜μ–΄ μžˆλ‹€. μš°λ¦¬λŠ” A, B, C 3개의 λ²„νŠΌμ„ μ μ ˆνžˆ λˆŒλŸ¬μ„œ κ·Έ μ‹œκ°„μ˜ ν•©μ΄ μ •ν™•νžˆ Tμ΄ˆκ°€ λ˜λ„둝 ν•΄μ•Ό ν•œλ‹€. λ‹¨ λ²„νŠΌ A, B, Cλ₯Ό λˆ„λ₯Έ νšŸμˆ˜μ˜ ν•©μ€ ν•­μƒ μ΅œμ†Œκ°€ λ˜μ–΄μ•Ό ν•œλ‹€. μ΄κ²ƒμ„ μ΅œμ†Œλ²„νŠΌ μ‘°μž‘이라고 ν•œλ‹€.

만일 μš”λ¦¬μ‹œκ°„μ΄ 100초라고 ν•˜λ©΄(T=100) Bλ₯Ό 1번, CλŠ” 4번 λˆ„λ₯΄λ©΄ λœλ‹€. μ΄μ™€ λ‹€λ₯΄κ²Œ Cλ₯Ό 10번 λˆŒλŸ¬λ„ 100μ΄ˆκ°€ λ˜μ§€λ§Œ μ΄ κ²½μš° 10λ²ˆμ€ μ΅œμ†Œ νšŸμˆ˜κ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ΄ λ‹΅μ΄ λ  μˆ˜ μ—†λ‹€. μ΄ κ²½μš° B 1번, C 4번, μ΄ 5번이 μ΅œμ†Œλ²„νŠΌ μ‘°μž‘이닀. κ·Έλ¦¬κ³  T=234와 κ°™μ΄ 3개의 λ²„νŠΌμœΌλ‘œ μ‹œκ°„을 μ •ν™•νžˆ λ§žμΆœ μˆ˜ μ—†λŠ” κ²½μš°λ„ μžˆλ‹€.

μ—¬λŸ¬λΆ„μ€ μ£Όμ–΄μ§„ μš”λ¦¬μ‹œκ°„ T초λ₯Ό λ§žμΆ”κΈ° μœ„ν•œ μ΅œμ†Œλ²„νŠΌ μ‘°μž‘ λ°©λ²•μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•΄μ•Ό ν•œλ‹€.

 


μž…λ ₯

첫 λ²ˆμ§Έ μ€„μ—λŠ” μš”λ¦¬μ‹œκ°„ T(초)κ°€ μ •μˆ˜λ‘œ μ£Όμ–΄μ Έ μžˆμœΌλ©° κ·Έ λ²”μœ„λŠ” 1 ≤ T ≤ 10,000 μ΄λ‹€.

 


좜λ ₯

μ—¬λŸ¬λΆ„μ€ T초λ₯Ό μœ„ν•œ μ΅œμ†Œλ²„νŠΌ μ‘°μž‘μ˜ A B C νšŸμˆ˜λ₯Ό μ²« μ€„에 μ°¨λ‘€λŒ€λ‘œ μΆœλ ₯ν•΄μ•Ό ν•œλ‹€. κ°κ°μ˜ νšŸμˆ˜ μ‚¬μ΄μ—λŠ” λΉˆ μΉΈμ„ λ‘”λ‹€. ν•΄λ‹Ή λ²„νŠΌμ„ λˆ„λ₯΄μ§€ μ•ŠλŠ” κ²½μš°μ—λŠ” μˆ«μž 0을 μΆœλ ₯ν•΄μ•Όν•œλ‹€. λ§ŒμΌ μ œμ‹œλœ 3개의 λ²„νŠΌμœΌλ‘œ T초λ₯Ό λ§žμΆœ μˆ˜ μ—†μœΌλ©΄ μŒμˆ˜ -1을 μ²« μ€„에 μΆœλ ₯ν•΄μ•Ό ν•œλ‹€.


μ„œλΈŒνƒœμŠ€ν¬

 


예제 μž…μΆœλ ₯

 


풀이 μ „λž΅

말이 길지, 동전 κ±°μŠ€λ¦„λˆ λ¬Έμ œμ™€ λΉ„μŠ·ν•©λ‹ˆλ‹€. μ •ν™•νžˆ 타이머λ₯Ό 맞좜 수 μ—†λŠ” 경우만 μ˜ˆμ™Έ μ²˜λ¦¬ν•΄μ£Όλ©΄ λ˜κ² λ„€μš”. μ΄λ§ˆμ €λ„ μ„œλ‘œ λ‹€λ₯Έ λ²„νŠΌ κ°„ μ‹œκ°„λ“€μ΄ μ „λΆ€ 배수 관계라 κ°€μž₯ μž‘μ€ 타이머λ₯Ό κΈ°μ€€μœΌλ‘œ λ‚˜λ¨Έμ§€ 연산을 해보면 λ©λ‹ˆλ‹€. 

 


μ†ŒμŠ€ μ½”λ“œ 및 κ²°κ³Ό

timer = [300, 60, 10]

T = int(input()) # 1 <= T <= 10000
buttons = [0, 0, 0]

if T % timer[-1] != 0:
    print(-1)
    exit()

i = 0
for time in timer:
    count = T // time
    if count > 0:
        buttons[i] += count
        T %= time
    i += 1


for button in buttons:
    print(button, end = " ")

 

이게 λμž…λ‹ˆλ‹€. μ •λ§λ‘œ.

 

 

728x90
λ°˜μ‘ν˜•