🐍 파이썬 μƒμ΄ˆμ§œ

[BOJ][Python] λ°±μ€€ 1475번: λ‚ μ§œ 계산

선달 2024. 10. 16. 17:55
λ°˜μ‘ν˜•

https://www.acmicpc.net/problem/1476

 

문제

μ€€κ·œκ°€ μ‚¬λŠ” λ‚˜λΌλŠ” μš°λ¦¬κ°€ μ‚¬μš©ν•˜λŠ” 연도와 λ‹€λ₯Έ 방식을 μ΄μš©ν•œλ‹€. μ€€κ·œκ°€ μ‚¬λŠ” λ‚˜λΌμ—μ„œλŠ” 수 3개λ₯Ό μ΄μš©ν•΄μ„œ 연도λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. 각각의 μˆ˜λŠ” 지ꡬ, νƒœμ–‘, 그리고 달을 λ‚˜νƒ€λ‚Έλ‹€.

지ꡬλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 수λ₯Ό E, νƒœμ–‘μ„ λ‚˜νƒ€λ‚΄λŠ” 수λ₯Ό S, 달을 λ‚˜νƒ€λ‚΄λŠ” 수λ₯Ό M이라고 ν–ˆμ„ λ•Œ, 이 μ„Έ μˆ˜λŠ” μ„œλ‘œ λ‹€λ₯Έ λ²”μœ„λ₯Ό 가진닀. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)

μš°λ¦¬κ°€ μ•Œκ³ μžˆλŠ” 1년은 μ€€κ·œκ°€ μ‚΄κ³ μžˆλŠ” λ‚˜λΌμ—μ„œλŠ” 1 1 1둜 λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€. 1년이 지날 λ•Œλ§ˆλ‹€, μ„Έ μˆ˜λŠ” λͺ¨λ‘ 1μ”© μ¦κ°€ν•œλ‹€. λ§Œμ•½, μ–΄λ–€ μˆ˜κ°€ λ²”μœ„λ₯Ό λ„˜μ–΄κ°€λŠ” κ²½μš°μ—λŠ” 1이 λœλ‹€.

예λ₯Ό λ“€μ–΄, 15년은 15 15 15둜 λ‚˜νƒ€λ‚Ό 수 μžˆλ‹€. ν•˜μ§€λ§Œ, 1년이 μ§€λ‚˜μ„œ 16년이 되면 16 16 16이 μ•„λ‹ˆλΌ 1 16 16이 λœλ‹€. μ΄μœ λŠ” 1 ≤ E ≤ 15 λΌμ„œ λ²”μœ„λ₯Ό λ„˜μ–΄κ°€κΈ° λ•Œλ¬Έμ΄λ‹€.

E, S, M이 μ£Όμ–΄μ‘Œκ³ , 1년이 μ€€κ·œκ°€ μ‚¬λŠ” λ‚˜λΌμ—μ„œ 1 1 1μΌλ•Œ, μ€€κ·œκ°€ μ‚¬λŠ” λ‚˜λΌμ—μ„œ E S M이 μš°λ¦¬κ°€ μ•Œκ³  μžˆλŠ” μ—°λ„λ‘œ λͺ‡ 년인지 κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 쀄에 μ„Έ 수 E, S, M이 주어진닀. λ¬Έμ œμ— λ‚˜μ™€μžˆλŠ” λ²”μœ„λ₯Ό μ§€ν‚€λŠ” μž…λ ₯만 주어진닀.

좜λ ₯

첫째 쀄에 E S M으둜 ν‘œμ‹œλ˜λŠ” κ°€μž₯ λΉ λ₯Έ 연도λ₯Ό 좜λ ₯ν•œλ‹€. 1 1 1은 항상 1이기 λ•Œλ¬Έμ—, 정닡이 μŒμˆ˜κ°€ λ‚˜μ˜€λŠ” κ²½μš°λŠ” μ—†λ‹€.

 

풀이

E, S, M = map(int, input().split())

year = e = s = m = 1

while True:
    if e==E and s==S and m==M:
        print(year)
        break
    
    year += 1
    e = e+1 if e<15 else (e+1)%15
    s = s+1 if s<28 else (s+1)%28
    m = m+1 if m<19 else (m+1)%19
λ°˜μ‘ν˜•