<문제> https://www.acmicpc.net/problem/2884
<풀이>
#include<stdio.h>
int main(void) {
int h, m,s;
scanf("%d %d", &h, &m);
if (m >= 45)
printf("%d %d", h, m - 45);
if (m < 45) {
s = 45 - m;
if (h == 0)
printf("23 %d", 60 - s);
if(h!=0)
printf("%d %d", h - 1, 60 - s);
}
return 0;
}
m < 45 이고 h가 0일때 h의 위치에 23이 출력이 되게끔 설정해줌으로써 h가 0일때의 까다로움을 해결해주었다.
그리고 h가 0일때 h != 0의 조건을 달아주지 않고 그대로 출력을 한다면, h==0의 조건에서 한번 출력을 하고, 밑에 출력문을 통해 한번 더 출력을 하게 되 의도치 않게, 출력값 두개를 볼 수 도 있다.
원래 처음에는 h != 0의 조건 대신, h==0의 조건을 만족하게 되면 break를 사용해 조건을 끝내고자 하였는데, 밑에 보이는 것과 같이 break문은 반복문, switch문 내에서만 사용이 가능하다.