1. 문제 상세
https://www.acmicpc.net/problem/2884
2. 문제 접근
cin 을 통해 시간을 입력받고(시, 분) 해당 시간에서 45분을 뺀 시간값을 출력한다.
45분을 빼는 경우만 있기 때문에 일단 분이 45분 미만인 경우와 아닌 경우를 확인하고, 시간이 0인 경우와 아닌 경우를 확인.
분 단위가 45분 미만이면 해당 분에서 45를 뺀 후 60을 더한다.
그리고 시간이 0인 경우, 시간을 23으로 설정하고, 0이 아닌 경우 시간에서 1을 뺀다.
분 단위가 45분 이상이라면 현재 분에서 45분을 뺀다.
그리고 시간을 출력한다.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int H, M;
cin >> H >> M;
if(M < 45) {
H--;
M = (M-45)+60;
if(H < 0)
H = 23;
}
else {
M -= 45;
}
cout << H << " " << M;
}
정수형 변수 H, M 을 선언. cin 으로 각 시간, 분을 입력받아 H, M 에 저장.
조건문으로 분 단위가 45 미만인지 확인하여 맞다면 H(시간)에서 1을 빼고 M(분)을 (M-45)+60 으로 저장한다.
조건문으로 H(시간) 값이 0 미만인 경우 H에 23을 저장한다.
분 단위가 45 이상이라면 M(분)에서 45만 뺀다.
마무리로 cout 으로 시간(H, M)을 출력.
4. 성능 확인
5. 마무리
조건문을 통해 시간 단위를 계산해보았다.
'백준 - 단계별로 풀어보기 > 조건문' 카테고리의 다른 글
[백준] 2480번 : 주사위 세개 | C++ (1) | 2023.09.15 |
---|---|
[백준] 2525번 : 오븐 시계 | C++ (0) | 2023.09.15 |
[백준] 14681번 : 사분면 고르기 | C++ (0) | 2023.09.14 |
[백준] 2753번 : 윤년 | C++ (0) | 2023.09.14 |
[백준] 9498번 : 시험 성적 | C++ (0) | 2023.09.14 |