백준 2525번 (파이썬)

Jiya·2025년 3월 13일


정답

H, M = map(int, input().split())
Cooking_M = int(input())
if (Cooking_M + M) < 60:
    print(H, Cooking_M + M)
elif (Cooking_M + M)% 60 == 0:
    H = (Cooking_M + M)//60 + H 
    if H >= 24:
        H = H-24
    print(H,0)
  
elif (Cooking_M + M) > 60:
    Cooking_H = (Cooking_M + M) // 60
    H = Cooking_H + H
    if H >= 24:
        H = H-24
    Cooking_M_rest = (Cooking_M + M) % 60
    M = Cooking_M_rest
    print(H, M)

정답이긴 한데 코드 가독성이 떨어지는 느낌입니다. 변수설정을 잘 못해서 그런 것 같습니다.

밑의 코드는 좀 더 가독성 좋게 AI 한테 정리해달라고 한 결과입니다.

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

total_minutes = M + Cooking_M

if total_minutes < 60:
    print(H, total_minutes)
elif total_minutes % 60 == 0:
    H = total_minutes // 60 + H
    if H >= 24:
        H = H - 24
    print(H, 0)
else:  # total_minutes > 60 및 나머지가 있는 경우
    added_hours = total_minutes // 60
    H = H + added_hours
    if H >= 24:
        H = H - 24
    remaining_minutes = total_minutes % 60
    print(H, remaining_minutes)

AI 버전이 시간이 4ms정도 더 걸리는데 이유는 잘 모르겠습니다.
어째 됐든 4ms정도면 무시할 수 있는 차이라고 생각합니다.

  • 조건문에 있어서 동일하게 쓰이는 변수가 있다면 (위의 경우 total_minute) 전역 변수로 따로 떼어놓기.
  • 변수 이름이 좀 길더라도 의미를 온전히 담아내는 이름을 쓰는게 좋다. ex) remainig_minutes, added_hours...
profile
코딩 공부 노트

0개의 댓글