백준 온라인 저지 / 2530번 인공지능시계
https://www.acmicpc.net/problem/2530
- 사용언어 : 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 |