본문 바로가기

컴퓨터/백준 알고리즘

백준 알고리즘 2884번: 알람 시계 [C++]

문제 출처: www.acmicpc.net/problem/2884

 

2884번: 알람 시계

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

www.acmicpc.net

 

1. 코드

(실행)

 

2. 풀이

int h, m;
cin >> h >> m;

먼저, h(시)와 m(분)을 입력하여 알림을 설정하고 싶은 시간을 입력받는다.

if ((m - 45) < 0)
{
	m = 60 - (45 - m);
		
	if ((h - 1) < 0)
		h = 23;
	else
		h--;
}

그리고 m - 45 일때 0미만이 될 경우 m = 60 - (45 - m)을 하면 우리가 원하는 m(분)이 나온다. 그리고 m - 45 일때 0미만이면 당연히 h의 시간도 변해야한다. 그런데 여기서 h - 1일때 0미만이면 h의 값은 23이다. 만약 아닐 경우는 h에서 1을 빼면 된다.

else
	m -= 45;

m - 45가 0이상일 경우에는 그냥 m - 45 값을 m에 저장하면 된다.

cout << h << " " << m;
return 0;

그리고 출력 h와 m을 출력해주면 끝이다.