시간의 덧셈 문제이다.
60분이 채워지면 올림이 되고, 24시간이 채워지면 다시 0시로 돌아가는 체계를 어떻게 코드로 구현할지가 관건이다.
나는 일단 현재 분과 더해질 분이 60을 넘는지 아닌지로 첫번째 케이스를 나누었고, 그 안에서 60을 넘지 않을 때는 현제 시간과 더해질 시간이 24를 넘는지 아닌지로 케이스를 나누었다. 60을 넘을 때는 시간이 올림되므로 현재 시간과 더해질 시간이 23을 넘는지 아닌지로 케이스르 나누었다.
#include <iostream>
using namespace std;
int main() {
int A, B, C, h, m;
cin >> A >> B;
cin >> C;
h = C / 60;
m = C % 60;
if (B + m < 60) {
if (A + h < 24) cout << A + h << " " << B + m;
else cout << A + h - 24 << " " << B + m;
}
else {
if (A + h < 23) cout << A + h + 1 << " " << B + m - 60;
else cout << A + h - 24 + 1 << " " << B + m - 60;
}
return 0;
}