data lab

백준 2525번 python 파이썬

LAB 관리자 2024. 7. 10. 14:54
반응형
startTime = input ("")
timeCost = input("")

startH, startM = map(int,startTime.split())
timeCost =int(timeCost)

if timeCost >= 60:
    timeCostHour = timeCost//60
    timeCostMin = timeCost%60
else:
    timeCostHour=0
    timeCostMin = timeCost

hour = startH+timeCostHour
min = startM+timeCostMin

if min>=60:
    hour = startH+timeCostHour+1
    min = startM+timeCostMin-60

if hour>=24:
    hour = hour-24

print(hour,min)

이래놓고 만족스러워하고있었다.

H, M = map(int, input().split())
timer = int(input()) 

H += timer // 60
M += timer % 60

if M >= 60:
    H += 1
    M -= 60
if H >= 24:
    H -= 24

print(H,M)

다른 블로그가보니까 이렇게 풀어놨다.

 

부끄럽다. += 연산자를 야무지게 쓰자~

 

간단한 풀이는, H 랑 M 을 int로 받고, 받은 timer을 60의 기준으로 H랑 M에 배정한 후에, M이 60을 넘는 경우의 수와 H가 24를 넘는 경우의 수를 처리한다.

 

반면에 나는 startTime 과 timeCost를 받고, 그걸 다시 int로 변환한 다음에, timeCost 변수를 60을 기점으로 timeCostHour 과 timeCostMin 으로 나누고, hour 과 min 변수를 새로 선언하고 거기다가 시작시간과 걸린시간을 더한 다음에 집어넣고, min 이 60, hour이 24를 넘는 경우의 수를 처리했다.

 

내가 한 쓸데없는 행동 교정 : 

1. 처음부터 int로 받기

2. timeCost를 새로운 변수 두개에 할당하지 말고 60을 기점으로 기존 startH이랑 startM에 배정해준다

(그러려면 변수명이 그냥 h 랑 m이 적합하겠지)

3. 그 후에 h랑 m에 대한 시간예외처리 ( h>=24 인경우, m>=60인경우를 처리해준다

h,m=map(int,input().split())
spend=int(input())

h+=spend//60
m+=spend%60

if m>=60:
	h+=1
	m-=60
if h>=24:
	h-=24
print(h,m)
반응형