https://www.acmicpc.net/problem/1408
계산의 편의를 위해 현재 시간과 임무를 시작한 시간을 초로 환산한다.
만약 현재 시간이 임무를 시작한 시간보다 클 경우: {(24시)-(현재시간)} + (임무를 시작한 시간)
만약 현재 시간이 임무를 시작한 시간보다 작을 경우: (임무를 시작한 시간) - (현재시간)
이렇게 구한 남은 초를 다시 시, 분, 초로 바꿔 출력한다.
C
더보기
더보기
#include <stdio.h>
void printTime(int v){
printf("%02d:", v / 3600); v -= (v / 3600) * 3600;
printf("%02d:", v / 60); v -= (v / 60) * 60;
printf("%02d", v);
}
int main() {
int now_h, now_m, now_s; // 현재 시간
scanf("%02d:%02d:%02d", &now_h, &now_m, &now_s);
int h, m, s; // 시작한 시간
scanf("%02d:%02d:%02d", &h, &m, &s);
/* 현재시간과 시작한 시간을 초로 환산 */
now_s = (now_h * 3600) + (now_m * 60) + now_s;
s = (h * 3600) + (m * 60) + s;
if(now_s < s) printTime(s - now_s);
else printTime(((24*60*60) - now_s) + s);
}
Python
더보기
더보기
def printTime(v):
print('%02d:' % (v // 3600), end=''); v -= (v // 3600) * 3600
print('%02d:' % (v // 60), end=''); v -= (v // 60) * 60
print('%02d' % v)
now_h, now_m, now_s = map(int, input().split(':'))
h, m, s = map(int, input().split(':'))
now_s = (now_h * 3600) + (now_m * 60) + now_s # 시간을 초로 환산
s = (h * 3600) + (m * 60) + s
if now_s < s: printTime(s - now_s)
else: printTime(((24*3600) - now_s) + s)
'구현, 수학' 카테고리의 다른 글
[백준] 1546. 평균 풀이 (0) | 2025.02.02 |
---|---|
[백준] 1475. 방 번호 풀이 (0) | 2025.02.02 |
[백준] 1357. 뒤집힌 덧셈 풀이 (0) | 2025.02.02 |
[백준] 1330. 두 수 비교하기 풀이 (0) | 2025.02.02 |
[백준] 1292. 쉽게 푸는 문제 풀이 (0) | 2025.02.02 |