반응형
https://www.acmicpc.net/problem/5074
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
이벤트 시작 시간 sh, 분 sm, 이벤트 소요시간 eh, 이벤트 소요분 em 모두 분으로 환산한 값을 저장할 tot, 지난 일 수를 저장할 plusDay를 선언한 후 적절히 필요 변수에 입력해줍니다.
📔 풀이과정
tot에 전체 시간을 분으로 환산한 값들의 총합을 저장합니다. plusDay는 tot/60/24가 됩니다.출력형식에 맞게 string으로 변환시켜줄 함수 getAnsString을 수행해 vector 형태로 반환해줍니다. 이를 변수 ans에 선언 후 저장합니다.
📔 정답출력
출력형식에 맞게 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
vector <string> getAnsString(int ansHour, int ansMinute){
vector <string> tmp(2,"");
if(ansHour < 10) tmp[0] += '0';
tmp[0] += to_string(ansHour);
if(ansMinute < 10) tmp[1] += '0';
tmp[1] += to_string(ansMinute);
return tmp;
}
int main(){
while(1){
int sh, sm, eh, em, tot = 0, plusDay = 0;
scanf("%d:%d %d:%d", &sh, &sm, &eh, &em);
if(!sh && !sm && !eh && !em) break;
tot = sh * 60 + sm + eh * 60 + em;
plusDay = tot / 60 / 24;
vector <string> ans = getAnsString(tot / 60 % 24, tot % 60);
if(plusDay) cout << ans[0] << ':' << ans[1] << ' ' << "+" << plusDay;
else cout << ans[0] << ':' << ans[1];
cout << '\n';
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 5102 : Sarah's Toys (0) | 2021.12.13 |
---|---|
(C++) - 백준(BOJ) 5101 : Sequences (0) | 2021.12.12 |
(C++) - 백준(BOJ) 20867 : Rulltrappa (0) | 2021.12.10 |
(C++) - 백준(BOJ) 4922 : Walk Like an Egyptian (0) | 2021.12.09 |
(C++) - 백준(BOJ) 4892 : 숫자 맞추기 게임 (0) | 2021.12.08 |