https://www.acmicpc.net/problem/2530
2525번 문제랑 매우 비슷한데 여기서 '초'가 추가된 것이라 계산이 조금 더 추가되었다.
우선 나의 코드를 먼저 보자.
#include <iostream>
using namespace std;
int main()
{
int hour, minute, sec = 0;
int give = 0;
cin >> hour >> minute >> sec;
cin >> give;
if (hour >= 0 && hour <= 23)
{
if (minute >= 0 && minute <= 59)
{
if (sec >= 0 && sec <= 59)
{
if (sec + give >= 60)
{
minute = minute + ((sec + give) / 60);
sec = ((sec + give) % 60);
if (minute >= 60)
{
hour = hour + (minute / 60);
minute %= 60;
}
if (hour >= 24)
hour %= 24;
cout << hour << " " << minute << " " << sec;
}
else
{
sec = sec + give;
cout << hour << " " << minute << " " << sec;
}
}
}
}
return 0;
}
내가 너무 코드가 길게 짰나라는 생각이 든다. 물론 정답으로 처리가 되었긴 한데..
정답인 다른 코드를 봐보자.
#include<stdio.h>
int main()
{
int a, b, c, n;
scanf("%d %d %d %d", &a, &b, &c, &n);
c+=n;
b+=c/60;
c%=60;
a+=b/60;
b%=60;
a%=24;
printf("%d %d %d", a, b, c);
return 0;
}
c언어로 짠 거긴 한데, 보면 수식이 너무 간단하다.
내가 if문을 너무 불필요하게 많이 쓰지 않았나 싶다.
맨 위의 3개의 if문은 굳이 필요없어 보이긴한다.
'백준 문제풀이 > 브론즈4' 카테고리의 다른 글
백준 5596번 - 시험 점수 (0) | 2021.10.18 |
---|---|
백준 2588번 - 곱셈 (0) | 2021.10.18 |
백준 2525번 - 오븐 시계 (0) | 2021.10.17 |
백준 2480번 - 주사위 세 개 (0) | 2021.10.17 |
백준 2420번 - 사파리 월드 (0) | 2021.10.17 |