조건문 복습이다.

생각
1. M시 44분 이하일 때, 1시간 빼기. 60 - {45 - (현재 분)} 계산하기. (육십분법)
- 0시 44분 → 23시 59분 (1시간 빼서 -1되면 23으로 바꿔주기)
2. 그외 (시간내림이 발생하지 않음)
#include <iostream>
using namespace std;
int main() {
int a, b, c, d;
cin >> a >> b;
if(b <= 44){
c = a -1;
if( c == -1){ c = 23; }
d = 60 - ( 45 - b );
}
else{
c = a;
d = b-45;
}
cout << c << " " << d << '\n';
return 0;
}
나름 갈끔하게는 풀었다고 생각하는데, 이전에 풀었던 코드를 열어보자
이전에 어떻게 풀었더라?
#include <iostream>
using namespace std;
int main() {
int hour, minute, min;
cin >> hour >> minute;
if (minute < 45)
min = (60 - (45 - minute));
else if (minute >= 45)
min = minute - 45;
if (hour > 0 && minute >= 45)
cout << hour << " " << min;
else if (hour > 0 && minute < 45)
cout << hour - 1 << " " << min;
else if (hour == 0 && minute < 45)
cout << 23 << " " << min;
else if (hour == 0 && minute >= 45)
cout << hour << " " << min;
return 0;
}
조건문을 작성하는 것 자체는 오늘 푼 코드가 더 깔끔하다. 이전에는 hour minute pair로 조건문을 작성했는데, 이번에는 출력될 시(hour)이 음수이면 23으로 처리를 해버리면서 전체 코드가 가독성좋고 짧아졌다.
'공부기록 > [Algorithm]' 카테고리의 다른 글
| 백준 2675번 <문자열 반복> - C++ (3) | 2024.08.03 |
|---|---|
| 백준 10811번 <바구니 뒤집기> - C++ (1) | 2024.08.02 |
| 백준 10810번 <공 넣기> - C++ (0) | 2024.08.02 |
| 백준 10951번 <A+B - 4> - C++ (0) | 2024.08.02 |
| 백준 2588번 <곱셈> - C++ (1) | 2024.08.01 |