Post List

[BOJ] 백준 2884 알람 시계

문제 링크 : https://www.acmicpc.net/problem/2884

시간개념의 시/분 을 어떻게 표현하면 되는지 알 수 있는 문제 였습니다.

처음에는, 시간(이하 H)을 분(이하 M)으로 변환하여 풀려고 하였으나,
이 경우에는 변환 + 음수처리(0시 이전)을 해 주어야 한다는 점은 변하지 않았습니다.

따라서 추가적인 변환을 피하기 위해(음수처리는 계속 해야 함.) 그냥 M - 45를 한 후
그 값이 음수이면 보정을 하는 방식을 채택하였습니다.

소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
int main() {
    int h, m;
    cin >> h >> m;
    
    int minute = m - 45;
    
    if (minute < 0) {
        h -= 1;
        if (h < 0) {
            h += 24;
        }
        minute += 60;
    }
    cout << h << ' ' << minute << endl;
}
cs

댓글