N

(SWEA c++)7732. 시간 개념 본문

SW Expert Academy

(SWEA c++)7732. 시간 개념

naeunchan 2020. 12. 1. 09:13
728x90
반응형

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWrDLM0aRA8DFARG&categoryId=AWrDLM0aRA8DFARG&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

두 시간의 차를 구해서 답을 구하면 된다.

두 시간의 차가 0보다 작으면 24시간을 더해서 다음 날의 시간을 구하면 된다.

문자열로 처리하려고 했지만 귀찮아서 if문으로 처리했다...

#include <iostream>
#include <string>

using namespace std;

int main(void)
{
    int t;
    cin >> t;
    
    for(int tc = 1; tc <= t; tc++)
    {
        string current = "", promise = "";
        int cur = 0, pro = 0, ans = 0;
        
        cin >> current;
        cin >> promise;
        cur = (stoi(current.substr(0, 2)) * 3600) + (stoi(current.substr(3, 2)) * 60) + stoi(current.substr(6, 2));
        pro = (stoi(promise.substr(0, 2)) * 3600) + (stoi(promise.substr(3, 2)) * 60) + stoi(promise.substr(6, 2));
        
        ans = pro - cur;
        
        if(ans > 0)
        {
            cout << "#" << tc << " ";
            if(ans / 3600 < 10)
                cout << "0" << ans / 3600 << ":";
            else
                cout << ans / 3600 << ":";
            if(ans % 3600 / 60 < 10)
                cout << "0" << ans % 3600 / 60 << ":";
            else
                cout << ans % 3600 / 60 << ":";
            if(ans % 60 < 10)
                cout << "0" << ans % 60 << endl;
            else
                cout << ans % 60 << endl;
        }
		else
        {
            ans += (3600 * 24);
            cout << "#" << tc << " ";
            if(ans / 3600 < 10)
                cout << "0" << ans / 3600 << ":";
            else
                cout << ans / 3600 << ":";
            if(ans % 3600 / 60 < 10)
                cout << "0" << ans % 3600 / 60 << ":";
            else
                cout << ans % 3600 / 60 << ":";
            if(ans % 60 < 10)
                cout << "0" << ans % 60 << endl;
            else
                cout << ans % 60 << endl;
        }
    }
    return 0;
}
728x90
반응형