※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 26947번 문제인 Klockan이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/26947
시곗바늘은 1분이 지날 때마다 시침은 0.5도, 분침은 6도씩 회전한다는 사실을 상기하자.
가능한 시간 표기는 720가지뿐이므로, 00시00분부터 1분씩 시간이 지날 때마다 각 바늘의 각도의 변화를 직접 시뮬레이션을 돌려 문제를 충분히 해결해보자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int h, m;
int deg;
int T;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> deg;
while (1) {
int d = m - h;
if (d < 0) d += 3600;
if (deg == d) break;
T++;
h = (h + 5) % 3600;
m = (m + 60) % 3600;
}
h = T / 60, m = T % 60;
if (h < 10) cout << 0;
cout << h << ':';
if (m < 10) cout << 0;
cout << m;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 26933 // C++] Receptet (0) | 2023.01.11 |
---|---|
[BOJ 26905 // C++] Sortera spellistan (0) | 2023.01.11 |
[BOJ 26936 // C++] Gourmeten (0) | 2023.01.11 |
[BOJ 26943 // C++] Turnering (0) | 2023.01.11 |
[BOJ 18154 // C++] Speeding (0) | 2023.01.11 |