이 문제는 입력된 시간에서 45분을 뺀 시간을 나타내는 문제이다.
ex) 입력: 12 54, 출력: 12 9
시간(h)과 분(m)이 입력된다.
#include <iostream>
using namespace std;
int main(){
// 입력 받을 값
int h, m;
// h, m 입력
cin >> h >> m;
// 입력 받은 분(m)에서 45를 뺏을때 음수인 경우
if((m - 45) < 0){
/**
* ((h - 1 < 0) ? 23 : h -1)
* 시간(h)에서 1을 뺏을때 음수일 경우 23 반환
* 아닐 시 시간(h)에서 -1 한 값 반환
*
* ((60 + m) - 45
* 60분에 분(m)을 더한 후 45를 빼어서 실제 분(m)을 표현
**/
cout << ((h - 1 < 0) ? 23 : h -1) << " " << ((60 + m) - 45);
}else{
// 입력 받은 분(m)에서 45를 뺏을때 음수가 아닌 경우
// 입력받은 시간(h) 출력, 입력받은 분(m)에서 45를 뺀 분(m) 출력
cout << h << " " << m - 45;
}
}
이 문제의 경우 45를 뺏을 때의 시간을 어떻게 처리하는지가 포인트인 문제였던 것 같다.