본문 바로가기
코딩/백준

[C언어] 백준 BOJ 2525 오븐시계

by 김두루미 2022. 7. 4.
반응형

https://www.acmicpc.net/problem/2525

 

2525번: 오븐 시계

첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

www.acmicpc.net

문제 설명

백준의 문제 - 단계별로 풀어보기의 [조건문] 의 2525 오븐시계 문제입니다.

 

앞의 문제인 2884 알람시계와 다르게 현재 시각(시, 분)을 입력받은 후 요리에 필요한 시간(분)을 더하여, 요리가 끝나는 시간을 출력해주는 문제입니다.

 

요리에 필요한 시간은 최대 1,000분이 추가된다고 명시되어 있습니다. 최대 16시간 40분이 추가될 수 있으며, 현재 시간의 값에 따라서, 23시가 넘어갈 수 있습니다.

 

[입력]
23 0
1000
[출력]
15 40

 

위와 같이 하루가 넘어가는 경우도 있으니, 확인을 꼭 해야 합니다.

 

현재 시각의 분과 요리시간(분)을 먼저 더한 다음 현실에서 표현 할 수 없는 시각(0분 ~ 59분, 0시 ~ 23시를 벗어난 경우) 인 경우 분은 초과된 만큼 시간에 더하고 분에는 남은 값만 저장합니다. 시간은 초과된 일(day)수는 필요 없으므로, 남은 시간만 저장합니다.


코드 (C언어)
#include<stdio.h>

int main(void)
{
	int hour, min, cookTime;
	
	scanf("%d%d%d", &hour, &min, &cookTime);
	
	min = min + cookTime; 
	
	if(min >= 60)					//분이 60분 이상이라면,  
	{
		hour = hour + (min / 60);	//넘친 만큼 시간에 더하고  
		min = min % 60;				//남은 값만 분에 저장 
	}
	
	if(hour >= 24)					//시간이 24시간 이상이라면, 
	{
		hour = hour % 24;			//남은 값만 시간에 저장 
	}
	
	printf("%d %d", hour, min);
	
	return 0;
}

 

반응형