h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60

if h >= 24:
    h -= 24

print(h,m)

 

🤔 문제 풀이

  • h, m =map(int,input().split())
    • 백준에서 입력해주는 값을 int로 변환하고, 공백을 기준으로 매칭시켜줄 겁니다.
  • cooktime = int(input())
    • 조리 시간을 int형으로 받아줄게요
  • h += cooktime //60
    • 시간은 조리 시간에다가 60을 써서 몫을 구하고, 몫이 있을 시, 더해줄게요
  • m += cooktime %60
    • 분은 조리 시간에다가 60을 나눈 나머지를 더해줄게요
    • 예) 61%60은 1이 나머지니까 m에 더해줄게요
  • if m >= 60:
        h += 1
        m -= 60
    • 분이 60이거나 60을 넘어서면 h에 1시간을 더해줄게요
    • 그러고 m에는 60을 빼준 값을 반환할게요
  • if h >= 24:
        h -= 24
    • h가 24보다 크거나 같을 때는 h에 -24를 해줄게요
    • 0시가 필요하니까요

실패 흔적들 

#1트 - TypeError
h, m =int(input().split())
cooktime = int(input())

if h >= 24:
     h -= 24
elif m >= 60:
     h += 1
     m -= 60
elif m < 60:
     m += cooktime
     
print(h,m)

 

🤔 문제 풀이

  • 제가 생각하는 조건들만 우르르 적어보았어요
  • 제가 문제 푸는 스타일이 문제를 읽으면서 떠오르는 코드들을 나열하거든요 ㅎㅎ;
  • h, m =int(input().split())
    • map 함수를 하지 않았더니 TypeError가 나더라구요
함수 설명 예시
map(function, iterable)
  • function: 각 요소에 적용할 함수.
  • iterable: 함수가 적용될 리스트, 튜플, 집합 등.
# 두 리스트에서 같은 위치의 값들을 더하는 함수
def add(x, y):
    return x + y

list1 = [1, 2, 3]
list2 = [4, 5, 6]

# 두 리스트에서 같은 위치의 값을 더하기
result = map(add, list1, list2)

# 결과를 리스트로 변환하여 출력
print(list(result))  # [5, 7, 9]

 

  • 그래서 map 함수를 다시 보고, 2트로 넘어갔습니다.
    • 왜 다시 보았냐면, "map 안 써도 되지 않나?" 라고 생각했거든요

 

#2트 "틀렸습니다"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60  # cooktime에다가 60을 나눴을 때 몫이 나온다면 그 몫을 더해주기
m += cooktime %60   # cooktime에다가 60을 나눴을 때 나머지를 다온다면 더해주기

if h >= 24:
   h -= 24
elif m >= 60:
     h += 1
     m -= 60
elif m < 60:
     m += cooktime
     
print(h,m)

 

🤔 문제 풀이

  • h, m =map(int,input().split())
    • h, m을 각각 int형으로 변환해주고, input 받을 겁니다!
  • h += cooktime //60
    • 이걸 왜 썼냐면요, cooktime이 60분으로 나누어주었을 때 몫이 생기면 시간에 +1을 해주기 위해서예요
  • m += cooktime %60
    • 반면에 분을 구할 때는 나머지(%)로 해주었습니다
    • 예를 들어 61%60을 하면 나머지 1이 발생하죠? 그게 1분으로 남게끔요!

하지만 정답으로는 틀렸다고 뜨더라구요 🤔

뭐가 문제일지 멍- 때리면서 고민했어요 흐음

 

#3트 "틀렸습니다"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60
elif m < 60:
    m +=cooktime
    
if h >= 24: # h는 따로 조건문을 줘야 하나? 라고 생각했음
    h -= 24

print(h,m)

 

그래서 도달한 생각이 변수 h와 m를 각각 조건을 줘야 하나..? 했어요

하지만 틀렸죠 ( ͡° ͜ʖ ͡°) 

근데 이렇게 따로 조건을 줘야할 거 같아서 그대로 유지했답니다

 

#4트 "정답"
h, m =map(int,input().split())
cooktime = int(input())
h += cooktime //60
m += cooktime %60

if m >= 60:
    h += 1
    m -= 60
    
# elif m < 60:  # 이미 위에서 m에 대해 정의 내렸기 때문에 삭제해봄
#     m +=cooktime

if h >= 24:
    h -= 24

print(h,m)

 

대체 뭐가 문제인지,, 🤦🏻‍♀️

제가 만든 코드와 눈싸움을 해봤어요

생각해보니까 위에서 m에 대해 할당을 해놓고 밑에서 elif로 또 조건을 줬더라구요 그래서 삭제해보았더니

정답!!!! 드디어 정답!!!


저번에 알람 시계 문제도 그렇고

시간 계산하는 거를 정말 못하는 거 같아요

앞으로도 시간 관련 문제를 좀 더 접해봤으면 좋겠어요

+ Recent posts