1. 문제 상세
https://www.acmicpc.net/problem/2525
2. 문제 접근
cin 을 통해 현재 시간과 필요 시간을 입력받아 현재 시간에서 필요 시간을 더한 값을 출력한다.
필요 시간은 분 단위로 입력받기 때문에 현재 시간을 모두 분으로 바꾸고, 필요 시간을 더해준다.
그리고 원래대로 시 분 단위로 나눈다.
분 단 위를이 n 일때 시 분 단위로 바꾸기
분 -> 시 : (n / 60) % 24
나머지 분 : n % 60
그 후 시간을 출력한다.
3. 문제 풀이
#include <iostream>
using namespace std;
int main() {
int H, M, X;
cin >> H >> M;
cin >> X;
int m = (H*60)+M;
m += X;
H = (m/60)%24;
M = m%60;
cout << H << " " << M;
}
정수형 변수 H, M, X를 선언. 현재 시간과 필요 시간을 입력받아 각 변수 H, M ,X 에 저장.
정수형 변수 m 을 선언하고 m에 H(시) X 60 + M 의 값을 저장하여 입력받은 시간을 모두 분으로 바꾼다.
그리고 m에 X를 더해 필요 시간을 더한 총 분을 저장한다.
이제 다시 시 분 으로 나누기 위해 H(시)에는 (m / 60) % 24 를 저장하고,
M(분)에는 m % 60 을 저장한다.
마지막으로 시간 H, M을 출력한다.
4. 성능 확인
5. 마무리
시간 + 시간 계산을 통해 시간을 모두 분 단위로 바꾸거나 분 단위의 시간을 시, 분 단위로 나누는 방법을 알아보았다.
시간을 분 단위로 나타낸 것이 N 일때
시, 분 -> 분(N) : 시 * 60 + 분 = N
분 -> 시 : ( N / 60 ) % 24
나머지 분 : N % 60
'백준 - 단계별로 풀어보기 > 조건문' 카테고리의 다른 글
[백준] 2480번 : 주사위 세개 | C++ (1) | 2023.09.15 |
---|---|
[백준] 2884번 : 알람 시계 | C++ (0) | 2023.09.15 |
[백준] 14681번 : 사분면 고르기 | C++ (0) | 2023.09.14 |
[백준] 2753번 : 윤년 | C++ (0) | 2023.09.14 |
[백준] 9498번 : 시험 성적 | C++ (0) | 2023.09.14 |