본문 바로가기
백준 알고리즘 단계별 풀이 (문제 수)/조건문 (7)

[C++] 오븐 시계 : 2525번

by 17번 일개미 2022. 7. 7.
728x90

문제

 

오븐에 현재 시각을 입력하고, 요리에 걸리는 시간을 입력하면 

요리가 끝나는 시간을 출력하는 프로그램을 작성하세요.

 


예제 입력

14 30
20

예제 출력

14 50

풀이

#include <iostream>
using namespace std;

int main() {
	int hour; int min;
	int how;
	cin >> hour >> min;
	cin.ignore();
	cin >> how;

	if (min + how > 60) // 걸리는 시간의 분과 현재 분의 합이 60을 넘을 때
	{
		min = min + how;
		int temp = min / 60;
		hour = hour + temp;
		min = min - (temp * 60);
		if (hour >= 24) hour = hour - 24;
		cout << hour << " " << min;
	}
	else if (min + how == 60) { // 걸리는 시간의 분과 현재 분의 합이 60일 때
		hour = hour + 1;
		min = 0;
		if (hour >= 24) hour = hour - 24;
		cout << hour << " " << min;
	}
	else if (min + how < 60) { // 걸리는 시간의 분과 현재 분의 합이 60미만 일 때
		min = min + how;
		if (hour >= 24) hour = hour - 24;
		cout << hour << " " << min;
	}
	else return 0;
}

이전 문제에서 시간에서 뺄셈을 하던 방식에서 덧셈으로 바꾸어주면 된다.

분끼리 더했을 때 60이거나 60이 넘는 경우, 시간에 1을 반올림하고,

60 미만인 경우에는 분만 합산하면 된다.

728x90