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

 

이번에 볼 문제는 백준 17843번 문제인 시계이다.
문제는 아래 링크를 확인하자.

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

 

17843번: 시계

어느 날, 할 것이 없던 윤표는 시계를 관찰하기 시작했다. 어느 순간 윤표는 시계가 하나의 원이라는 사실을 깨달았다. 또, 시계의 중심에서 시침, 분침, 그리고 초침의 방향으로 반직선을 그어

www.acmicpc.net

시계의 중심각을 43200(12*60*60)으로 잡으면 시침은 3600h+60m+s, 분침은 720m+12s, 초침은 720s의 위치에 있게 된다.

 

이들을 이용하여 각 침이 이루는 최소 중심각 비율을 구해 문제를 해결하자.

 

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

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;

int arr[3];

void solve() {
	int h, m, s; cin >> h >> m >> s;
	arr[0] = 3600 * h + 60 * m + s;
	arr[1] = 720 * m + 12 * s;
	arr[2] = 720 * s;
	sort(arr, arr + 3);
	int mx = min(min(arr[1] - arr[0], arr[2] - arr[1]), 43200 + arr[0] - arr[2]);
	cout << (double) mx / 120 << '\n';
}

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

	cout << fixed;
	cout.precision(10);

	int T; cin >> T;
	while (T--) {
		solve();
	}
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 17840 // C++] 피보나치 음악  (0) 2022.06.12
[BOJ 5569 // C++] 출근 경로  (0) 2022.06.12
[BOJ 1922 // C++] 네트워크 연결  (0) 2022.06.11
[BOJ 1495 // C++] 기타리스트  (0) 2022.06.10
[BOJ 1965 // C++] 상자넣기  (0) 2022.06.09

+ Recent posts