문제 링크 : https://www.acmicpc.net/problem/2884
시간개념의 시/분 을 어떻게 표현하면 되는지 알 수 있는 문제 였습니다.
처음에는, 시간(이하 H)을 분(이하 M)으로 변환하여 풀려고 하였으나,
이 경우에는 변환 + 음수처리(0시 이전)을 해 주어야 한다는 점은 변하지 않았습니다.
따라서 추가적인 변환을 피하기 위해(음수처리는 계속 해야 함.) 그냥 M - 45를 한 후
그 값이 음수이면 보정을 하는 방식을 채택하였습니다.
소스코드 :
시간개념의 시/분 을 어떻게 표현하면 되는지 알 수 있는 문제 였습니다.
처음에는, 시간(이하 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 | 
댓글
댓글 쓰기