🧩 Algorithm/SWEA

[SWEA] 1976. μ‹œκ° λ§μ…ˆ (Python/D2)

devCloud 2024. 10. 16. 23:57
728x90

[문제 링크] πŸ‘‰ 

 

SW Expert Academy

SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”!

swexpertacademy.com

 


μ„€λͺ…

μ‹œ λΆ„μœΌλ‘œ 이루어진 μ‹œκ°μ„ 2개 μž…λ ₯ λ°›μ•„, λ”ν•œ 값을 μ‹œ λΆ„μœΌλ‘œ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λΌ.

(μ‹œκ°μ€ 12μ‹œκ°„μ œλ‘œ ν‘œμ‹œν•œλ‹€. 즉, μ‹œκ°€ κ°€μ§ˆ 수 μžˆλŠ” 값은 1μ‹œλΆ€ν„° 12μ‹œμ΄λ‹€.)

 

[μ œμ•½ 사항]
μ‹œλŠ” 1 이상 12 μ΄ν•˜μ˜ μ •μˆ˜μ΄λ‹€. 뢄은 0 이상 59 μ΄ν•˜μ˜ μ •μˆ˜μ΄λ‹€.

 

풀이

핡심은 12μ‹œκ°„μ œλ‘œ ν‘œμ‹œν•˜λŠ” 것이닀. μ£Όμ˜ν•  점은 뢄이 60뢄을 λ„˜κΈ°λ©΄ μ‹œλ„ 같이 증가λ₯Ό ν•΄μ€˜μ•Ό ν•œλ‹€. 

 

첫 번째 μ‹œκ°μ˜ μ‹œ, 두 번째 μ‹œκ°μ˜ μ‹œλ₯Ό λ”ν•˜κ³  hour에 μ €μž₯ν•œλ‹€.

첫 번째 μ‹œκ°μ˜ λΆ„, 두 번째 μ‹œκ°μ˜ 뢄을 λ”ν•˜κ³  minute에 μ €μž₯ν•œλ‹€.

 

minute이 60 이상이면 hour에 1을 더해주고, minuteμ—μ„œ 60을 λΉΌμ€€ 값을 λ‹€μ‹œ μ €μž₯ν•œλ‹€.

hourλŠ” 12 λ₯Ό λ„˜μ–΄κ°€λ©΄ hourμ—μ„œ 12λ₯Ό λΉΌμ€€ 값을 λ‹€μ‹œ μ €μž₯ν•œλ‹€.

 

Solution

sol.1

test_case = int(input())

for tc in range(1, test_case + 1):
    hour1, minute1, hour2, minute2 = map(int, input().split())
    hour = hour1 + hour2
    minute = minute1 + minute2
    if minute > 59:
        hour += 1
        minute -= 60
    if hour > 12:
        hour -= 12
    print("#%d %d %d" %(tc, hour, minute))

 

 

sol.2

이 μ½”λ“œλŠ” 만일 μ œμ•½μ‚¬ν•­μ΄ 없을 λ•Œ ν™œμš©ν•  수 μžˆλ‹€.

test_case = int(input())

def hour_calc(hour):
    if hour > 12:
        hour -= 12
        hour_calc(hour)

    return hour

def minute_calc(hour, minute):
    if minute > 60:
        minute -= 60
        hour += 1
        hour = hour_calc(hour)
        minute_calc(hour, minute)

    return hour, minute

for tc in range(1, test_case + 1):
    hour1, minute1, hour2, minute2 = map(int, input().split())
    hour = hour1 + hour2
    minute = minute1 + minute2
    while hour > 12:
        hour -= 12
    hour, minute = minute_calc(hour, minute)

    print("#%d %d %d" %(tc, hour, minute))

 

πŸ‘©‍πŸ’» 회고

사싀 sol.2 μ½”λ“œλŠ” μ œμ•½μ‚¬ν•­μ„ μ œλŒ€λ‘œ μ΄ν•΄ν•˜μ§€ λͺ»ν•˜κ³  ν’€μ–΄μ„œ λ‚˜μ˜¨ μ½”λ“œμ΄λ‹€... μž…λ ₯이 μ œν•œμ μ΄λΌ μ‹œλ₯Ό 2이상 ν”ŒλŸ¬μŠ€ ν•΄μ€˜μ•Ό ν•  일이 μ—†κΈ° λ•Œλ¬Έμ— ν•„μš”μ—†λŠ” 것이닀. 60뢄을 λ„˜κ²Όμ„ λ•Œ μ‹œλ„ 같이 ν”ŒλŸ¬μŠ€λ₯Ό ν•΄μ€˜μ•Ό ν•˜λŠ” κ±°λΆ€ν„° λ„ˆλ¬΄ 깊게 듀어가버렸닀. μ œμ•½μ‚¬ν•­ 잘 ν™•μΈν•˜μž.


 

728x90