[백준/BOJ] 백준 2884번 : 알람 시계

2020. 7. 18. 01:47알고리즘 문제풀이

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

 

2884번: 알람 시계

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

www.acmicpc.net

시간을 분단위로 바꾸고 45분을 뺀다. 이때 주의해야 될 점을 45분을 뺏을 때 그 전날이 되는 경우 즉, 시간이 음수가 되는 경우에는 24*60분(24시간)을 더한다. 그리고 60으로 나눠 시를 구하고, 60으로 나눈 나머지가 분이 된다.

 

코드

#include <iostream>
using namespace std;

int main()
{
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	int h, m;
	int time;

	cin >> h >> m;

	//시간을 분단위로 바꾼다
	time = h * 60 + m;
	//45분을 뺀다
	time -= 45;

	//시간이 음수일때(45분을 뺏을때, 전날이 되는경우)
	//24*60(24시간=24*60분)을 더한다 
	if (time < 0)
	{
		time += 24 * 60;
	}

	h = time / 60;//60으로 나눠 시를 구한다
	m = time % 60;//60으로 나눈뒤 나머지가 분이다.

	cout << h << " " << m;

	return 0;
}