반응형
https://www.acmicpc.net/problem/1408
1408번: 24
도현이는 Counter Terror Unit (CTU)에서 일하는 특수요원이다. 도현이는 모든 사건을 정확하게 24시간이 되는 순간 해결하는 것으로 유명하다. 도현이는 1시간 만에 범인을 잡을 수 있어도 잡지 않는
www.acmicpc.net
구현문제였습니다.
📕 풀이방법
📔 입력 및 초기화
형식에 맞게 시작시간과 끝 시간을 입력받기 위한 배열 s, e를 선언해 시간, 분, 초를 입력받습니다.
📔 풀이과정
남은 시간을 string형태로 반환하는 getTimeLeft함수를 수행합니다.
시작시간과 끝 시간을 초로 환산해 저장합니다. 이 후 시간, 분, 초로 환산해 출력 형식에 맞게 지역변수 timeLeft를 선언 해 저장합니다.
* 24시인 경우 0시로 바꿔야합니다.
* 남은 시간이 10미만이라면 0을 정답 문자열에 더해줘야 합니다.
📔 정답출력
getTimeLfet결과를 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int s[3], e[3];
string getTimeLeft(){
int startTime = 0, endTime = 0, hour, minute, sec;
string timeLeft = "";
startTime = s[0] * 3600 + s[1] * 60 + s[2];
endTime = e[0] * 3600 + e[1] * 60 + e[2];
if(startTime > endTime) endTime += 3600 * 24;
sec = endTime - startTime;
hour = sec / 3600;
if(hour == 24) hour = 0;
sec %= 3600;
if(hour < 10) timeLeft += "0";
timeLeft += to_string(hour) + ":";
minute = sec / 60;
if(minute < 10) timeLeft += "0";
timeLeft += to_string(minute) + ":";
sec %= 60;
if(sec < 10) timeLeft += "0";
timeLeft += to_string(sec);
return timeLeft;
}
int main(){
scanf("%d:%d:%d", &s[0], &s[1], &s[2]);
scanf("%d:%d:%d", &e[0], &e[1], &e[2]);
cout << getTimeLeft();
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 9063 : 대지 (0) | 2022.02.14 |
---|---|
(C++) - 백준(BOJ) 8716 : Pole (0) | 2022.02.10 |
(C++) - 백준(BOJ) 8932 : 7종 경기 (1) | 2022.02.07 |
(C++) - 백준(BOJ) 17614 : 369 (2) | 2022.02.06 |
(C++) - 백준(BOJ) 5163 : Isn’t It Funny How a Bear Likes Honey? (0) | 2022.02.05 |