728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, 초) hh는 0보다 크거나 같고, 23보다 작거나 같으며, 분과 초는 0보다 크거나 같고, 59보다 작거나 같다.
둘째 줄에는 나트륨을 던질 시간이 위와 같은 형식으로 주어진다.
출력
첫째 줄에 정인이가 기다려야 하는 시간을 입력과 같은 형식으로 출력한다.
소스코드
#include <iostream> #include <string> using namespace std; int main(void) { string start, end; int s[3], e[3], ans[3]; cin >> start; cin >> end; s[0] = stoi(start.substr(0, 2)); s[1] = stoi(start.substr(3, 2)); s[2] = stoi(start.substr(6, 2)); e[0] = stoi(end.substr(0, 2)); e[1] = stoi(end.substr(3, 2)); e[2] = stoi(end.substr(6, 2)); if (e[2] >= s[2]) ans[2] = e[2] - s[2]; else ans[2] = 60 + e[2] - s[2], e[1]--; if (e[1] >= s[1]) ans[1] = e[1] - s[1]; else ans[1] = 60 + e[1] - s[1], e[0]--; if (e[0] >= s[0]) ans[0] = e[0] - s[0]; else ans[0] = 24 + e[0] - s[0]; if (ans[2] == 0 && ans[1] == 0 && ans[0] == 0) ans[0] = 24; for (int i = 0; i < 3; i++) { if (ans[i] < 10) cout << '0' << ans[i]; else cout << ans[i]; if (i != 2) cout << ':'; } }
Tip
실질적으로 다른 타이머 문제와 크게 차이는 없는데 문제 조건에 있는 적어도 1초를 기다리며, 많아야 24시간을 기다린다를 주의해야 한다. 이 조건을 잘 찌르는 케이스가 바로 00:00:00과 00:00:00이 조건으로 들어온 경우다. 답이 24:00:00이 나와야 하는데 00:00:00이 나오는 케이스들이 해당된다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 2890 - 카약(COCI 2009/2010) (0) | 2019.02.20 |
---|---|
백준] 9469 - 폰 노이만(ACM-ICPC Regionals) (0) | 2019.02.19 |
백준] 2997 - 네 번째 수(COCI 2007/2008) (0) | 2019.02.17 |
백준] 2891 - 카약과 강풍(COCI 2009/2010) (0) | 2019.02.16 |
백준] 3486 - Adding Reversed Numbers(ACM-ICPC Regionals) (0) | 2019.02.07 |