백준 2884번 - 알람 시계

VDoring·2021년 8월 31일
0

백준-문제풀이

목록 보기
8/16

문제 출처

2884번: 알람 시계

코드

#include <stdio.h>
int main() {
	int h, m;
	scanf("%d %d", &h, &m);

	//만약 m이 빼려는 값 45보다 작다면 -> h를 -1하고 m을 60 더한다.
	if (m - 45 < 0) {
		h -= 1;
		m += 60;
	}
	//만약 h가 0인데 -1을 해야하는경우 h에 24을 더한다.
	if (h < 0) {
		h += 24;
	}

	m -= 45;
	printf("%d %d", h, m);
}

해결 방법

먼저 시간과 분을 받는다.

이후 분 값이 45보다 작을때 1시간을 60분으로 변환하여 45를 빼고,
분 값이 45보다 크다면 바로 45를 빼도록 하였다.

계산 후 시간 값이 -(마이너스)대로 넘어갔다면 24을 더하여 최종 값을 출력한다.

느낀 점

생각없이 풀기엔 변수가 꽤나 있는 문제였다. 물론 알고리즘 문제 자체가 생각없인 풀기 힘든 문제들이긴 하지만..

평소엔 생각하지 않았던 시간과 분의 관계에 대해 다시 생각하게 되었다.

'시간이 이리도 기계적으로 움직이는거였나?' 와 같이 말이다.

전자시계에 사용된 소프트웨어도 이런 변수들을 모두 고려하여 만들어졌다고 생각하니 그 시계가 달라보였다.

profile
< Beginners Heart >

0개의 댓글