백준 2525번 : 오븐 시계 문제 풀이
https://www.acmicpc.net/problem/2525
2525번: 오븐 시계
첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)
www.acmicpc.net
1. 문제
2. 풀이
이전 문제와 비슷한 방식이지만
입력을 분으로 받고
시간이 23 이상이 되면 0으로 초기화 하고 1부터 시작해야 한다
#include <stdio.h>
int main() {
int h, m, t;
scanf("%d %d %d", &h, &m, &t);
scanf 를 이용하여 현재 시간과( h ) 분( m ) 요리하는데 필요한 시간( t ) 를 입력받는다
분은 60을 기준으로 나누고
시간은 24보다 클때와 같을 때를 기준으로 나누었다
m += t;
if (m >= 60) {
h += m / 60;
m %= 60;
요리하는 데 필요한 시간은 분으로 입력받기 때문에 분( m ) 과 더한다
분( m )이 60보다 크거나 같을 때
시간 ( h )에 분( m )을 60으로 나눈 몫을 더한다
분( m )은 60으로 나눈 나머지로 바꾼다
if (h > 24)
h %= 24;
else if (h == 24)
h = 0;
}
시간( h )이 24보다 클 때
시간( h )을 24로 나눈 나머지로 정한다
else if 문을 사용해서 if 문과 구별을 해주었다
시간(h)이 24와 같을 때 시간( h )을 0으로 정한다
최종적으로 제출한 코드이다
#include <stdio.h>
int main() {
int h, m, t;
scanf("%d %d %d", &h, &m, &t);
m += t;
if (m >= 60) {
h += m / 60;
m %= 60;
if (h > 24)
h %= 24;
else if (h == 24)
h = 0;
}
printf("%d %d", h, m);
return 0;
}
3. 다른 사람이 제출한 코드
https://kiffblog.tistory.com/185
[C언어] 백준 2525. 오븐 시계
문제 KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다. 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오
kiffblog.tistory.com
#include <stdio.h>
int main(void)
{
int temp;
int hour, min, time; //현재 시각(시, 분), 요리 시간
scanf("%d %d", &hour, &min);
scanf("%d", &time);
temp = hour * 60 + min + time; //분으로 환산해 더하기
hour = temp / 60; //시간으로 변환
if (hour > 23) hour -= 24; //24시가 넘으면 0으로 바꾸기
min = temp % 60; //나머지는 분
printf("%d %d", hour, min);
return 0;
}
1. 시간( hour ) , 분 ( min ), 요리시간 ( time ) 을 전부 분으로 바꾸어 temp 에 저장한다
2. 시간( hour )은 temp 를 60으로 나눈 몫이다
3. 시간( hour )이 23을 넘는다면 시간에서 24를 뺀다
4, 분( min )은 temp 를 60으로 나눈 나머지이다
조건이 많아서 if 문을 적어도 3개는 사용해야 한다고 생각했는데
하나밖에 사용하지 않아서 신기하면서 놀란 코드였다
'Coding > baekjoon' 카테고리의 다른 글
[백준 / baekjoon] 2739번 : 구구단 [C] (0) | 2023.11.23 |
---|---|
[백준 / baekjoon] 2480번 : 주사위 세개 [C] (0) | 2023.11.22 |
[백준 / baekjoon] 2884번 : 알람 시계 [C] (0) | 2023.11.20 |
[beakjoon] 14681번 : 사분면 고르기 [C] (0) | 2023.11.19 |
[baekjoon] 2753번 : 윤년 [C] (0) | 2023.11.16 |