문제 바로가기
https://www.acmicpc.net/problem/2884


관련 알고리즘
- 해당 없음
정답 및 해설
현재 시간과 분을 입력받아 45분전 시간을 출력한다.
45분을 먼저 빼고 음수가 되는 시간이 있다면 양수로 바꾸어 출력하면 해결할 수 있다.
C++
더보기
#include<iostream>
using namespace std;
int main(){
int h,m;
cin>>h>>m;
m-=45;
if(m<0){
h-=1;
if(h<0)
h+=24;
m+=60;
}
cout<<h<<" "<<m;
}
| Line | 해설 |
| 5 | 입력받은 분 (m)에서 45를 뺀다. |
| 6~11 | 45를 뺀 분이 음수라면 60을 더해 양수로 바꿔주어야 한다. -20분이라면 60분부터 20분전이므로 40분을 구한다. 덧셈 뺄셈을 하듯이 윗 자리수를 하나 빼주어야한다 |
| 7~9 | 윗 자리수인 시간 단위를 1 빼는데 또 음수가 나올 경우 24를 더해 양수로 바꿔주어야 한다. 이럴 경우 윗 자리수일 일 단위를 하루 빼주어야 할텐데 해당 문제에서는 고려하지 않는다. |
'Coding > BOJ' 카테고리의 다른 글
| [BOJ 백준] 3052 - 나머지 (C++ / Python) (1) | 2023.11.09 |
|---|---|
| [BOJ 백준] 2920 - 음계 (C++) (1) | 2023.11.09 |
| [BOJ 백준] 2675 - 문자열 반복 (C++ / Python) (1) | 2023.11.06 |
| [BOJ 백준] 2577 - 숫자의 개수 (C / C++ / Python) (0) | 2023.11.05 |
| [BOJ 백준] 2562 - 최댓값 (C / C++) (0) | 2023.11.04 |