코드1
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
int main()
{
int hour, min, temp;
scanf("%d %d", &hour, &min);
temp = min - 45;
if (temp < 0 && 0 != hour) {
hour -= 1;
min = 60 + temp; //temp가 -이기에 +연산자 사용.
}
else if(temp < 0 && 0 == hour) {
hour = 23;
min = 60 + temp;
}
else {
min = temp;
}
printf("%d %d", hour, min);
return 0;
}
코드2
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
int main()
{
int hour, min;
scanf("%d %d", &hour, &min);
min = min - 45;
if (min < 0) {
min += 60;
//hour = (hour - 1) % 24;
// 시간에 0이 입력되면 시간 출력이 -1로 나옴. 그렇기에,
// 시간이 하나 빼진 23을 더해주고 모듈러 연산을 하면 23이 나올 수 있게 됨.
// 23을 더해주어봤자 어차피 모듈러 연산이기에 값은 0~23범위에서 나올 것임.
hour = (hour + 24 - 1) % 24;
}
printf("%d %d", hour, min);
return 0;
}
'역시 내 문제해결 알고리즘은 잘못됐다' 카테고리의 다른 글
백준 1546번 C/C++ (0) | 2020.12.30 |
---|---|
백준 1152번 C/C++ (0) | 2020.12.30 |
백준 2750번 C/C++ (0) | 2020.08.07 |
백준 11721번 C/C++ (0) | 2020.07.15 |
백준 10951번 (0) | 2020.07.13 |