[백준 BOJ] 2884번 알람 시계 (C언어)

2022. 1. 30. 16:15PS (Program Solving)/BOJ (백준)

문제 설명

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

 

2884번: 알람 시계

상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,

www.acmicpc.net

백준 BOJ 2884번 알람 시계 문제 사진
백준 BOJ 2884번 알람 시계 문제 사진2

 

접근 방법 - 시간의 연산이 필요한 문제

백준의 2884번 문제는 단순한 시간 계산을 사용해서 해결해야 하는 문제이다.

해당 문제에선 입력받은 시간에서 45분 앞의 시간을 출력하면 된다.

이때, 분의 범위는 0~59이며 시간의 범위는 0~23이라는 점을 유의하며 코드를 작성해야 한다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 시간(h, m)을 입력받는다.

 

2) m의 값에 따라 아래의 연산을 취한다.

- 만일 m이 45보다 크거나 같다면 m에 45를 뺀다.

- m이 45보다 작다면 h에 1을 빼면서 m에는 15를 더한다.

(ex) 9시 40분이라면, 8시 55분으로 계산

(만약 h가 0인 경우엔 h의 값을 23으로 변경한다.)

 

3) 연산이 끝난 시간(h, m)을 출력한다.

반응형

 

성공한 코드

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

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

	if (m >= 45) {
		m -= 45;
	}
	else {
		if (h == 0) { h = 23; }
		else { h--; }
		m += 15;
	}

	printf("%d %d", h, m);
}

 

제출 결과

백준 BOJ 2884번 알람 시계 문제 C 제출 결과

(2021.12.15 백준 2884번 문제 제출 결과)

반응형