본문 바로가기

알고리즘/오일러

201104 #1131 디지털 시계(C++)

오일러OJ 사이트 : euleroj.io/problemset/

백준, 프로그래머스 말고도 알고리즘 문제를 풀 수 있는 사이트를 추천하기 위해 이번 주는 오일러OJ 에서 알고리즘 문제를 풀어봤습니다.

 

문제 링크 : euleroj.io/problemset/problem/1131

#include <iostream>

using namespace std;



int main() {

    int  A, B, C;
    int sum = 0;
    cin >> A >> B;
    cin >> C;
    sum = B + C;

    if(sum >= 60){
        A += (sum/60);
        if(A>23){
            A -= 24;
        }
        sum = sum % 60;
    }
    cout << A << " " << sum;
}

문제 : 현재 시간인 A시 B분에서 C분이 소요되면 문제를 끝마친 시간을 구하는 문제입니다

코드 : B분과 C분을 더해 60미만인 경우는 상관 없지만 60이 넘는 경우에 A에 (B+C)/60을 한 몫을 누적합니다. 여기서 A가 24시간을 넘을 수 없기 때문에(23시 59분까지 가능) 24가 넘으면 A에서 24를 감소시킵니다. 그리고 시간을 수정해줬으면 분도 수정해줘야 하는데 (B+C)%60을 하면 A에게 시간을 넘겨주고 나머지를 분에다가 넣어준 코드가 됩니다.

'알고리즘 > 오일러' 카테고리의 다른 글

201104 #1001 작거나 크거나(C++)  (0) 2020.11.05