๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/8989)
< ์๊ณ >
๋ฌธ์ ํ์ด
์์นจ ๊ฐ๋์ ๋ถ์นจ ๊ฐ๋๋ฅผ ๊ตฌํ๋ค.
์์นจ ๊ฐ๋ = ์์นจ * 30 + ๋ถ์นจ * 0.5
๋ถ์นจ ๊ฐ๋ = ๋ถ์นจ * 6
์์นจ๊ณผ ๋ถ์นจ์ด ์ด๋ฃจ๋ ๊ฐ๋๋ ์๋์ ๊ฐ์ด 3๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํ๋ค.
1) ์์นจ + 360 - ๋ถ์นจ
2) ๋ถ์นจ + 360 - ์์นจ
3) ์์นจ - ๋ถ์นจ

my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
public class _8989_ { // ์๊ณ
static class Clock implements Comparable<Clock> {
private String time;
private double angle;
public Clock(String time, double angle) {
this.time = time;
this.angle = angle;
}
@Override
public int compareTo(Clock o) {
if (this.angle == o.angle) {
return this.time.compareTo(o.time);
}
return Double.compare(this.angle, o.angle);
}
}
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int T = Integer.parseInt(bf.readLine());
for (int i = 0; i < T; i++) {
st = new StringTokenizer(bf.readLine());
Clock answer[] = new Clock[5];
for (int j = 0; j < 5; j++) {
String time = st.nextToken();
String arr[] = time.split(":");
double h = Double.parseDouble(arr[0]);
double m = Double.parseDouble(arr[1]);
double result = Integer.MAX_VALUE;
if (h > 12) {
h -= 12;
}
h = h * 30 + 0.5 * m;
m *= 6;
result = Math.min((360 - m) + h, m + (360 - h));
result = Math.min(result, Math.abs(m - h));
answer[j] = new Clock(time, result);
}
Arrays.sort(answer);
bw.write(answer[2].time + "\n");
}
bw.flush();
}
}
๋ณ์)
T : ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์
answer : Clock์ ์ ์ฅํ๋ ๋ฐฐ์ด
h, m : ์์นจ, ๋ถ์นจ
result : ์์นจ๊ณผ ๋ถ์นจ์ด ํ์ฑํ๋ ๊ฐ๋ ์ค ์์ ๊ฐ๋
Clock
์๊ฐ๊ณผ ์์นจ๊ณผ ๋ถ์นจ์ด ํ์ฑํ๋ ๊ฐ๋๋ฅผ ๋ณ์๋ก ๊ฐ์ง๋ค. ์ ๋ ฌํ ๋ ๊ฐ๋๊ฐ ์์ ๊ฐ์ ์ฐ์ ์์๋ก ์ ๋ ฌํ๋ฉฐ, ๊ฐ๋๊ฐ ๊ฐ๋ค๋ฉด ์๊ฐ์ด ๋น ๋ฅธ ๊ฒ์ ์ฐ์ ์ผ๋ก ํ๋ค.
Main
ํ ์คํธ ์ผ์ด์ค ๊ฐ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ํ ์คํธ ์ผ์ด์ค ์๋งํผ ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ ๋ถ์ ๋๋๋ค.
2) 12์๋ฅผ ๋์๋ค๋ฉด 12๋ฅผ ๋นผ์ค๋ค.
3) ์์นจ์ด ์ด๋ฃจ๋ ๊ฐ๋๋ 1์๊ฐ์ 30๋ 1๋ถ์ 0.5๋๋ฅผ ์์ง์ด๋ฏ๋ก h * 30 + 0.5 * m์ด ๋๋ค.
4) ๋ถ์นจ์ด ์ด๋ฃจ๋ ๊ฐ๋๋ 1๋ถ์ 6๋๋ฅผ ์์ง์ด๋ฏ๋ก m * 6์ด ๋๋ค.
5) ์์นจ๊ณผ ๋ถ์นจ์ด ์ด๋ฃจ๋ ๊ฐ๋๋ฅผ 3๊ฐ์ง ๊ฒฝ์ฐ๋ก ๊ณ์ฐํ์ฌ ๊ทธ์ค์์ ๊ฐ์ฅ ์์ ๊ฐ์ ๊ตฌํ๋ค.
6) ๋ฐฐ์ด์ ๊ฐ๋์ ์๊ฐ์ ์ ์ฅํ๋ค.
7) ๋ฐฐ์ด ์ ๋ ฌ ํ ์ค๊ฐ ๊ฐ์ ์๊ฐ์ ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 10799_์ ๋ง๋๊ธฐ (0) | 2024.07.26 |
---|---|
[Baekjoon] 15705_๋จ์ด ์ฐพ๊ธฐ (1) | 2024.07.25 |
[Baekjoon] 9753_์ง ๊ณฑ (1) | 2024.07.23 |
[Baekjoon] 3231_์นด๋๋์ด (0) | 2024.07.22 |
[Baekjoon] 15595_์ ๋ต ๋น์จ ๊ณ์ฐํ๊ธฐ (0) | 2024.07.19 |