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

2022. 1. 21. 14:20PS (Program Solving)/BOJ (백준)

문제 설명

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

 

2525번: 오븐 시계

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

www.acmicpc.net

백준 BOJ 2525번 오븐 시계 문제 사진
백준 BOJ 2525번 오븐 시계 문제 사진2

 

접근 방법 - 기본적인 시간 계산 문제

백준 2525번 문제는 시간의 덧셈에 대한 수학 문제이다.

이 문제를 풀 때 우리는 아래의 경우를 고려하며 코드를 작성하면 된다.

- minute가 60 이상이면, minute가 60을 넘지 않게끔 hour과 minute를 연산

- hour이 24 이상이면, hour이 24를 넘지 않게끔 hour를 연산

필자는 위 2가지를 고려하면서, 아래처럼 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 현재 시각 h, m를 입력받고, 소요되는 시간(분 단위) num을 입력받는다.

 

2) m에 num을 더한다.

 

3) m이 60 이상인지 확인한다.

60 이상인 경우, m의 값에 대해 h과 m을 적절히 계산한다. (1h=60m)

 

4) h가 24 이상인지 확인한다.

24 이상인 경우, h에서 24를 뺄셈 하여 24를 넘지 않도록 계산한다.

 

5) 연산 완료된 h, m을 출력한 뒤, 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <stdio.h>

//백준 2525번 코드
int main() {
	int h, m;
	scanf("%d %d", &h, &m);
	int num;
	scanf("%d", &num);

	m += num;
	if (m >= 60) {
		h += (m / 60);
		m %= 60;
	}
	if (h > 23) {
		h -= 24;
	}
	printf("%d %d", h, m);
}

 

제출 결과

백준 BOJ 2525번 오븐 시계 문제 C 제출 결과

(2021.12.28 백준 2525번 문제 제출 결과)

반응형