Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 3029번 - '경고' (PYTHON 풀이) 본문
문제:

현재 시간과 나트륨을 던질 시간을 입력받고 해당 시간의 차이를 구하면 된다. (둘의 차이가 곧 대기 시간이므로)
풀이:
now = input()
bomb = input()
h1, m1, s1 = map(int, now.split(":"))
h2, m2, s2 = map(int, bomb.split(":"))
now_sec = h1 * 3600 + m1 * 60 + s1
bomb_sec = h2 * 3600 + m2 * 60 + s2
diff = bomb_sec - now_sec
if diff <= 0:
diff += 24 * 3600
h = diff // 3600
m = (diff % 3600) // 60
s = diff % 60
print(f"{h:02d}:{m:02d}:{s:02d}")
상기 코드는 다음과 같은 의미이다.
1. 현재 시간과 폭탄을 던질 시간을 입력받는다.
2. 입력 예제와 동일하게 ':'을 기준으로 시간, 분, 초를 구분하도록 split 함수를 쓴 뒤, 각 변수에 시, 분, 초만 따로 떼서 저장한다.
3. 시, 분, 초를 하나의 형식으로 통일하기 위해, 초 기준으로 변환한다. (1분은 60초, 60분은 3600초(60*60))
4. 초로 변환된 두개의 변수의 차이를 diff에 저장한다. (대기시간을 구하기 위해)
5. 이때 차이가 0보다 작을 경우, 하루를 차이값에 더한다. (3600은 1시간, 3600*24는 하루)
6. 위 작업을 모두 거친 diff는 차이가 완벽히 계산된 상태이므로, 다시 출력 형식에 맞추기 위해 시간, 분, 초로 나눈다. (시간은 3600으로 나눈 몫, 분은 3600(1시간)으로 나눈 나머지에서 60으로 나눈 몫(3600으로 나눈 몫은 시간에 들어가므로 나머지로만 계산해야함), 초는 60으로 나눈 나머지
7. 그 다음 포맷 스트링을 활용하여 출력 예제와 동일한 형식으로 맞춰서 출력
'CODING 💻' 카테고리의 다른 글
| 백준 28074번 - '모비스' (PYTHON 풀이) (0) | 2026.04.13 |
|---|---|
| 백준 28431번 - '양말 짝 맞추기' (PYTHON 풀이) (1) | 2026.04.12 |
| 백준 25640번 - 'MBTI' (PYTHON 풀이) (0) | 2026.04.10 |
| 백준 5532번 - '방학 숙제' (PYTHON 풀이) (0) | 2026.04.09 |
| 백준 34071번 - '첫 번째 문제는 정말 쉬운 문제일까?' (PYTHON 풀이) (0) | 2026.04.08 |
