Hour, Min, Sec = map(int, input().split())
ttaken = int(input())
Sec += ttaken % 60
ttaken = ttaken // 60
if Sec >= 60:
Sec -= 60
Min += 1
Min += ttaken % 60
ttaken = ttaken // 60
if Min >= 60:
Min -= 60
Hour += 1
Hour += ttaken % 24
if Hour >= 24:
Hour -= 24
print(Hour, Min, Sec)
백준 2530번 문제인 시간과 경과시간 입력해서 시간계산해주는 코드인데
잘모르겠어서 찾아보고난뒤 입력하고 이게 어떻게 이렇게 되나 생각하고있었어요
Hour Min Sec 값에 1 0 0을 입력하고 ttaken(경과시간)에 200을 입력했습니다.
그러면 실행하면 3분 20초가 증가한 1 3 20이 되어야하잖아요? 프로그램도 마찬가지로 정상실행되구요..
그런데 4,5번줄의 Sec += ttaken % 60, ttaken = ttaken // 60을 실행하면 변수 Sec는 20, ttaken은 3으로 변합니다.
근데 그러면 변수값도 변하니 그다음줄 if문 Sec >= 60: 이 성립되지 않아 실행이 안되는거 아닌가요?
간단한 코드같지만 생각해보니 변수값이 변해서 if문을 성립하지 않는 것같은데 잘실행되서 이해되지 않아서
여쭤봅니다 ㅠ 꼭알고싶어요!
if문은 if문이 실행되는 시점에서의 값만 보니까 Sec=20이면 if문 아래 부분이 실행이 안 되고 넘어감. 저 if문이 왜 있는지 이해를 못하고 있는거 같은데?
지금 예시를 1 0 0에 200으로 해서 모르는거 같은데 1 0 49에 200으로 해보면 저 부분이 어떻게 작동하는지 이해가 갈 거야. 이쪽은 남의 코드만 봐서 이해할 수 있는게 아니라 논리를 이해하고 코드를 보는게 좋아
선생님 그러면 변수는 코드 진행되면서 계속 연산에의해서 변하는게 맞나요,,,,?
ㅇㅇ 당연한거 아님?
감사합니다!
먼 소리하늕 이해가 앙가는ㄷ
아니 시발 기존에 있던 초는 60 넘어가면 분으로 올려야 되닌깐 있는 거고 안돌아가는게 맞는데 머가 문제임
본이이 짠 거 아님?
백준 풀다가 잘모르겠어서 검색해봤어요 ㅠ
글 내용 보면 본인이 짠 코드 아닌듯
ㅈㄴ짜 초보자면 디버그 모드로 하나하나 어케 돌아가는지 봐보셈 금방 이해댐
헉 디버그모드로 찾아볼게요! 감사합니다!