코딩/백준

[백준][C] 2525. 오븐 시계

rivermoon 2022. 10. 2. 00:59

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

첫째 줄에는 정수형으로 빈칸을 사이에 두고 시와 분이 주어지며,

두 번째 줄에는 필요한 시간이 주어집니다.

예제 입력

17 40

80

예제 출력

19 0

 

해결 방법

시간을 더했을 때 분이 60보다 커지는 경우를 생각해야 합니다.

17 45에서 80분을 더하였을때 이를 고려하지 않으면 결과가 17 125으로 나오게 되겠죠.

 

여러 해결법이 있을 수 있지만, 간단하게 1시간은 60분이라는 것을 이용하여 해결하였습니다.

125분은 2시간 + 5분입니다. 즉 시에는 2를 더해주고, 분에는 2시간 (2 * 60분, 즉 120)을 빼주면

17(+2) 125(-120) = 19 5로 원하는 결과가 나오게 되죠.

 

코드

#include <stdio.h>
int main()
{
	int h, m, time;
	scanf("%d %d\n%d", &h, &m, &time);
	
	m += time;
	if (m >= 60){
		int i = m / 60;
		h += i;
		m -= i * 60;
	}
	if (h >= 24) h -= 24;
	printf("%d %d", h, m);
}

 

 

*22.10.03 설명 수정됨