반응형
문제 : https://www.acmicpc.net/problem/2884
풀이
문제의 조건을 if-else로 옮긴다.
만약 m이 45보다 크거나 같다면 45분 뒤로 가더라도 h는 변하지 않으므로 m만 45를 뺀다
m이 45보다 작다면 h는 1빼고 m도 45를 빼야하므로 m은 60+m-45다.(m의 입장에서는 45를 뺐더니 h가 감소되어서 60이 추가된다)
그리고 1을 빼기전 h가 0이라면 1을 뺐을때 -1이 아닌 23이 되어야한다.
전체코드(C++14)
#include <iostream>
using namespace std;
int main() {
int h, m;
cin >> h >> m;
if (m >= 45) {
m -= 45;
}
else {
if (h == 0) h = 23;
else h--;
m = 60 + m - 45;
}
cout << h << " " << m;
}
최근댓글