※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 25830번 문제인 Microwave Mishap이다.
문제는 아래 링크를 확인하자.

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

 

25830번: Microwave Mishap

Donald is very hungry. He grabs a TV dinner, puts it in the microwave, and enters 02:15 to cook it for 2 minutes and 15 seconds. Unknown to Donald, microwave takes these values as hours and minutes, i.e., microwave takes 02:15 as 2 hours and 15 minutes (no

www.acmicpc.net

주어지는 문자열을 HH:MM형태로 읽었을 때의 시간과 MM:SS형태로 읽었을 때의 시간으로 초단위로 계산한 뒤 그 차를 HH:MM:SS의 형태로 출력해주는 문제이다.

 

substr을 이용해 부분문자열을 추출하고, stoi를 이용해 문자열을 정수로 간단히 바꿀 수 있다. 이를 이용해 편하게 구현해보자.

 

00, 07과 같이 한자리 수 또한 앞에 0을 채워 두자리로 표기해야함에 유의하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	string s; cin >> s;
	int total = stoi(s.substr(0, 2)) * 3600 + stoi(s.substr(3, 2)) * 60 - stoi(s.substr(0, 2)) * 60 - stoi(s.substr(3, 2));
	int H = total / 3600; total %= 3600;
	int M = total / 60; total %= 60;
	int S = total;

	if (H < 10) cout << 0;
	cout << H << ':';
	if (M < 10) cout << 0;
	cout << M << ':';
	if (S < 10) cout << 0;
	cout << S;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 25829 // C++] Presidential Election  (0) 2022.11.05
[BOJ 25932 // C++] Find the Twins  (0) 2022.11.05
[BOJ 25870 // C++] Parity of Strings  (0) 2022.11.05
[BOJ 3765 // C++] Celebrity jeopardy  (0) 2022.11.05
[BOJ 25636 // C++] 소방차  (0) 2022.11.04

+ Recent posts