문제
https://www.acmicpc.net/problem/3029
3029번: 경고
첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, 초) hh는 0보다 크거나 같고, 23보다 작거나 같으며, 분과 초는 0보다 크거나 같고, 59보다 작거나 같다. 둘째 줄에는 나트륨을 던질 시간
www.acmicpc.net
코드
#include <iostream>
#include <string>
using namespace std;
int hms1[3];
int hms2[3];
int main(){
string t1, t2;
cin >> t1 >> t2;
for(int i=0; i<3; i++){
hms1[i] = stoi(t1.substr(3*i,2));
hms2[i] = stoi(t2.substr(3*i,2));
}
if(hms2[2]-hms1[2]<0){
hms2[2]+=60;
hms1[1]+=1;
}
if(hms2[1]-hms1[1]<0){
hms2[1]+=60;
hms1[0]+=1;
}
if(hms2[0]-hms1[0]<0||t1==t2){
hms2[0]+=24;
}
for(int i=0; i<3; i++){
int result = hms2[i]-hms1[i];
if(result/10==0) cout << 0;
cout << result;
if(i!=2) cout << ':';
}
return 0;
}
정리
"정인이는 적어도 1초를 기다리며, 많아야 24시간을 기다린다."에서 알 수 있듯이 동이한 시간이 입력되면 24:00:00 를 출력해야 한다. 그래서 세 번째 if문에 t1==t2일때도 고려해주었다.
참조
'Beakjoon > else' 카테고리의 다른 글
[백준] 10973번 이전 순열 (C++) (0) | 2022.05.18 |
---|---|
[백준] 10972번 다음 순열 (C++) (0) | 2022.05.18 |
[백준] 1431번 시리얼 번호 (C++) - sort, compare (0) | 2022.05.08 |
[백준] 2484번 주사위 네개 (C++) (0) | 2022.03.20 |
[백준] 4458번 첫 글자를 대문자로 (C++) (0) | 2022.03.02 |