백준 온라인 저지 / 2530번 인공지능시계
https://www.acmicpc.net/problem/2530
2530번: 인공지능 시계
첫째 줄에 종료되는 시각의 시, 분, 초을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수이며, 분, 초는 0부터 59까지의 정수이다. 디지털 시계는 23시 59분 59초에서 1초가 지나면 0시 0
www.acmicpc.net
- 사용언어 : C (C99)
- 알고리즘 : 수학, 사칙연산
C 코드
1. 문제 정리
문제 풀기 앞서 여담이지만...
C로 문제 안풀지만.. 다시 학교가면 C하고 C++을 해야 할 거 같기에... 불편해도 C언어와 친해져보기로 결심했다.
이번 문제는 총 4개의 입력을 받아 계산 후 출력하는 문제이다.
어디서 많이 본 시계 문제인데 옛날에 풀 때는 겁나 길게 적어서 뇌절 했다만.. 지금은 그렇지 않다 ㅋ
전형적인 hour, min, sec 다 나와서 60되면 1 올려주는 그런 구조로 풀면 될 거 같았다.
2. while문 남발
while문 보다 더 간단한 코드로 쓸 순 없을까? 생각했지만, 이거보다 더 간단해지려면 내가 보기엔 파이썬이나 고 쓰는 거 밖에 없다.
while (c >= 60) {
b++;
c -= 60;
} //60초가 넘어가면 1분을 더해주고 -60초 해주고
while (b >= 60) {
a++;
b -= 60;
} //60분이 넘어가면 1시간을 더해주고 -60분 해주고
while (a >= 24) {
a -= 24;
} //24시간이 넘어가면 -24시간을 한다.
간단한 문제였다.
근데 C#보다 150배는 빨리 문제 처리 되는 기분이였다 ㅋ;;
3. 완성 코드
#include <stdio.h>
int main(void)
{
int a, b, c, d;
scanf("%d %d %d %d", &a, &b, &c, &d);
c += d;
while (c >= 60) {
b++;
c -= 60;
}
while (b >= 60) {
a++;
b -= 60;
}
while (a >= 24) {
a -= 24;
}
printf("%d %d %d", a, b, c);
}
'백준 알고리즘 > Lang-C | C++' 카테고리의 다른 글
[백준/C] 5596번 시험 점수 (0) | 2021.08.19 |
---|---|
[백준/C] 5575번 타임 카드 (0) | 2021.08.18 |
[백준/C] 5543번 상근날드 (0) | 2021.08.17 |
[백준/C] 5532번 방학 숙제 (0) | 2021.08.17 |
[백준/C] 4299번 AFC 웜블던 (0) | 2021.08.17 |