Lumpy Space Princess - Adventure Time
코딩테스트/백준

백준 [2525] - 오븐 시계

yaebb_82 2022. 7. 25.

 

 

 

문제

 

 

 

작성 코드

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

if m+cook < 60:
    print(h, m+cook)

else:
    h = h+(m+cook)//60
    m = (m+cook)%60

    if h > 23:
        h -= 24
        print(h, m)
    else:
        print(h, m)

- input()을 통해 문자를 입력받는다.

- split()을 통해 h와 m을 공백으로 구분한다.

- map()을 통해 Input().split()을 int형으로 형변환하여 h와 m에 저장한다.

- input()을 통해 문자를 입력받고, int형으로 형변환하여 cook에 저장한다.

- if~else문을 사용하여 m+cook이 60 미만일 경우, 60 이상일 경우로 조건을 나누었다.

- m+cook이 60 미만인 경우 = 요리시작 시간에 요리한 시간을 더했음에도 분이 60분이 넘지 않았을 때

   : 바로 요리 끝나는 시각 계산하여 출력한다.

- m+cook이 60 이상인 경우 = 요리시작 시간에 요리한 시간을 더했더니 분이 60분이 넘었을 때

   : m+cook을 60으로 나눠서 나온 몫을 h에 더해준다. (시)

   : m+cook을 60으로 나눠서 나온 나머지를 m에 더해준다. (분)

   : 계산 후에 if~else문을 다시 사용하여 h가 23을 초과했을 경우와, 아닌 경우로 조건을 나누었다.

     → h가 23을 초과했을 경우(24, 25, 26, ..), h에서 24를 빼준 뒤 해당 시각을 출력한다.

     → h가 23 이하일 경우 그대로 출력한다.

 

cf.) 생각보다 복잡하게 풀어낸 것 같아서 다른 사람들 풀이도 참고하자

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을 계산을 해준다.

- 이후 if문으로 M 먼저 계산 → 그 다음 H 계산 → print로 출력 해주는 방식이다.

 

 

 

반응형

'코딩테스트 > 백준' 카테고리의 다른 글

백준 [2739] - 구구단  (0) 2022.07.27
백준 [2480] - 주사위 세개  (0) 2022.07.25
백준 [2884] - 알람 시계  (0) 2022.07.23
백준 [14681] 사분면 고르기  (0) 2022.07.23
백준 [9498] - 시험 성적  (0) 2022.07.23

댓글