문제
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
#include<iostream>
using Time = int;
constexpr int ALARM = 45;
void CheckHour(Time& h) {
if (h == 0) {
h = 23;
}
else {
--h;
}
}
void CheckTIme(Time& h, Time& m) {
if (m - ALARM < 0) {
CheckHour(h);
m = 60 + (m - ALARM);
}
else {
m -= ALARM;
}
}
int main() {
Time H, M;
std::cin >> H >> M;
CheckTIme(H, M);
std::cout << (int)H << " " << (int)M << "\n";
}
|
후기
이 문제를 해결하기 위한 키워드는 시간이다.
시간 변수 H와 분 변수 M을 받아서 45분 일찍 일어날 수 있는 알람 시간을 구하는 문제이다.
먼저 변수 M을 체크해서 45분을 뺏을 때 0보다 작다면 시간이 바뀌어야 하기 때문에 CheckHoure() 메서드를 구현했으며 현재 분에서 45분을 빼고 다시 60분을 더하면 해당하는 분이 나온다. 이 문제는 그렇게 어려운 문제는 아니지만
이렇게 시간 관련 문제가 다른 문제에서 가끔 나오기 때문에 시간관련해서 문제를 풀어보는 것도 좋은 도움이 된다.
출처 및 레퍼런스
문제 링크: www.acmicpc.net/problem/2884
'온라인 코딩 > 기타(Other)' 카테고리의 다른 글
[프로그래머스] SQL SELECT(2) (0) | 2021.02.24 |
---|---|
[프로그래머스] SQL SELECT(1) (0) | 2021.02.20 |
[백준] 2480번 주사위 세개 (0) | 2020.04.28 |
[백준] 9655번 돌 게임 (0) | 2020.04.25 |
[백준] 16165번 걸그룹 마스터 준석이 (0) | 2020.03.22 |