728x90
SMALL
백준 문제 풀이: 2884 [알람 시계]
문제 링크: https://www.acmicpc.net/problem/2884
문제 설명:
현재 시간에서 45분 일찍 알람을 설정하려고 합니다. 만약 시간이 00:00일 경우, 알람 시간이 전날로 넘어가는 경우도 고려해야 합니다. 주어진 시(hour)와 분(minute)을 기준으로, 45분 전의 시간을 출력하는 프로그램을 작성하세요.
입력 조건:
- 첫째 줄에 두 정수 H와 M이 주어집니다. (0 ≤ H ≤ 23, 0 ≤ M ≤ 59)
출력 조건:
- 45분 전의 시간을 공백으로 구분하여 출력합니다. (24시간 표기법 사용)
문제 해결 코드
#include <iostream>
using namespace std;
int main() {
int h, m;
cin >> h >> m; // 현재 시간 입력
// 분 단위 처리
m -= 45;
if (m < 0) { // 분이 0보다 작으면 시간을 줄이고 분을 조정
m += 60;
h--;
}
// 시 단위 처리
if (h < 0) { // 시간이 0보다 작으면 23시로 설정
h = 23;
}
// 결과 출력
cout << h << " " << m << endl;
return 0; // 프로그램 정상 종료
}
코드 설명
위 코드는 현재 시간에서 45분 전의 시간을 계산하여 출력합니다.
- 분 단위 처리:
- 현재 분에서 45를 뺍니다. 결과가 음수라면 60을 더해 조정하고, 시(hour)를 줄입니다.
- 시 단위 처리:
- 시가 음수라면 23으로 설정하여 하루 전으로 넘어가는 시간을 반영합니다.
- 출력: 계산된 시와 분을 출력합니다.
시간 복잡도 분석:
- 모든 계산이 상수 시간 내에 이루어지므로 시간 복잡도는 O(1)입니다.
결과
다음은 입력 예시와 출력 결과입니다:
입력:
10 10
출력:
9 25
입력:
0 30
출력:
23 45
입력:
23 50
출력:
23 5
다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!
728x90
LIST
'BAEKJOON > 수학' 카테고리의 다른 글
백준 2594번 [놀이공원](C++)-yes6686- 티스토리 (0) | 2023.12.18 |
---|---|
백준 3052번 [나머지](C++)-yes6686- 티스토리 (0) | 2023.12.18 |
백준 2753번 [윤년](C++)-yes6686- 티스토리 (0) | 2023.12.18 |
백준 2739번 [구구단](C++)-yes6686- 티스토리 (0) | 2023.12.18 |
백준 15824번 [너 봄에는 캡사이신이 맛있단다](C++)-yes6686- 티스토리 (0) | 2023.12.17 |