

<백준> 2884번 알람시계 C++ 문제풀이알고리즘/백준2021. 1. 7. 23:14
Table of Contents

알람 시계를 기상 시간보다 45분 이르게 설정하는 문제
ex)
9시 ☞ 8시 15분
2시 17분 ☞ 1시 32분
풀이
#include <iostream>
using namespace std;
int main() {
int hour, min;
cin >> hour >> min; //시간, 분 입력
if (min < 45) { //45분보다 작을경우 시간 값에서 1을 빼고
min = min + 15; // 입력한 분에 + 15를 함
hour = hour - 1;
if (hour < 0) // -1 한 시간 값이 0보다 작을 경우 23으로 변경
hour = 23;
}
else {
min = min - 45;
}
cout << hour << " " << min << endl;
}
간단한 수학문제다
기존 시간보다 45분을 일찍 맞춰야 하기 때문에 입력한 분에서 -45 하면 된다.
하지만 45분보다 값이 작을 경우에 분이 -로 내려가는 문제가 생기게 된다.
이를 대비하기 위해 수학식을 이용한다
hour에서 60분을 끌어와 45분을 미리 빼주는 방법을 사용하게 되면
60분 - 45분 = 15분 즉 15분이라는 값이 생기게 된다.
여기서 남은 15분을 처음에 설정하게 된 min에 더하면 시계를 기준으로 한 정상 값을 구할 수 있다.
주의할 점은
시간에는 00 : 00이 존재한다는 것
00시에서 1시간을 빼면 23이 되어야 하기 때문에 if를 추가하여 23으로 바꿔준다.
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
'알고리즘 > 백준' 카테고리의 다른 글
<백준> 1110번 더하기 사이클 java 문제풀이 (0) | 2022.01.05 |
---|---|
<백준> 1712번 손익분기점 C++ 문제풀이 (0) | 2021.02.02 |
<백준> 4344번 평균은 넘겠지 C++ 문제풀이 (0) | 2021.01.26 |
<백준> 2753번 윤년 C++ 문제풀이 (0) | 2021.01.08 |

@Han_5ung :: 한성 개인 기록장
IT
github : https://github.com/HanSungHyeon