티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 2525번 오븐 시계

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

 

2525번: 오븐 시계

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

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

현재 시각과 오븐구이 시간이 분 단위로 주어졌을 때, 오븐구이가 끝나는 시각 계산

 

2. 풀이

if 문이 많이 포함되는 문제는 본인이 직접 계산 절차를 생각해보고

그 순서에 맞게 그대로 구현하면 됩니다.

 

나누기(/), 나머지(%) 연산을 활용하여 입력받은 time(오븐 구이 시간)을 hh(시간), mm(분) 에 각각 더해주고,

아래와 같이 정상 범위를 벗어나는 숫자를 처리해주었습니다.

 

1) mm(분)이 60 이상이면 -> hh(시간)을 하나 더하고 mm(분)에서 60을 뺀다.

2) hh(시간)이 24 이상이면 -> hh(시간)에서 24를 뺀다.

 

1번 2번 순서를 바꾸면 시간이 24 가 되면서 종료될 수 있으므로,

mm(분)을 먼저 처리하고 hh(시간)을 나중에 처리합니다.

 

3. 코드

#include <stdio.h>

int main() {
	int hh, mm, time;
	scanf("%d %d %d", &hh, &mm, &time);

	hh += time / 60;
	mm += time % 60;

	if (mm >= 60) {
		++hh;
		mm -= 60;
	}

	if (hh >= 24) {
		hh -= 24;
	}

	printf("%d %d\n", hh, mm);
	return 0;
}

 

728x90
반응형
댓글