본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 13223 : 소금폭탄

반응형

https://www.acmicpc.net/problem/13223

 

13223번: 소금 폭탄

첫째 줄에는 현재 시각이 hh:mm:ss로 주어진다. 시간의 경우 0≤h≤23 이며, 분과 초는 각각 0≤m≤59, 0≤s≤59 이다. 두 번째 줄에는 소금 투하의 시간이 hh:mm:ss로 주어진다.

www.acmicpc.net

시간 출력하는 구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

시작 시간 시분초 st, 끝 시간 시분초 et를 선언 후 입력받습니다.

📔 풀이과정

1. 시작시간을 초로 환산한 값을 sTotal에 저장합니다.2. 끝 시간을 초로 환산한 값을 eTotal에 저장합니다.3. 최소 1초 최대 24시간이므로 sTotal >= eTotal인 경우 24시간 만큼 초를 더해줍니다.

📔 정답출력

구현한 convert함수로 시분초 형식으로 바꿔준 문자열을 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int st[3], et[3], sTotal, eTotal, ans;

int main(){
    scanf("%d:%d:%d", st, st+1, st+2);
    scanf("%d:%d:%d", et, et+1, et+2);
    sTotal = st[0] * 3600 + st[1] * 60 + st[2];
    eTotal = et[0] * 3600 + et[1] * 60 + et[2];
    if(sTotal >= eTotal) eTotal += 24 * 3600;
    ans = eTotal - sTotal;
    printf("%02d:%02d:%02d", ans/3600, (ans%3600) / 60, ans % 60);
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.