• 문제 링크
https://www.acmicpc.net/problem/3154
• 풀이 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static int[][] arr = {{3, 1}, {0, 0}, {0, 1}, {0, 2}, {1, 0}, {1, 1}, {1, 2}, {2, 0}, {2, 1}, {2, 2}};
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine(), ":");
int H = Integer.parseInt(st.nextToken()), M = Integer.parseInt(st.nextToken());
int min = Integer.MAX_VALUE, h = 0, m = 0;
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
if (i % 24 != H || j % 60 != M) continue;
int e = calc(i / 10, i % 10) + calc(i % 10, j / 10) + calc(j / 10, j % 10);
if (min > e) {
min = e;
h = i;
m = j;
}
}
}
sb.append(h < 10 ? "0" : "").append(h).append(m < 10 ? ":0" : ":").append(m);
bw.write(sb.toString());
bw.flush();
}
private static int calc(int a, int b) {
return Math.abs(arr[a][0] - arr[b][0]) + Math.abs(arr[a][1] - arr[b][1]);
}
}
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 6751 From 1987 to 2013 - Brute Force / Java (0) | 2024.09.03 |
---|---|
[백준] 11116 교통량 - Brute Force / Java (0) | 2024.09.02 |
[백준] 1357 뒤집힌 덧셈 - Implementation / Java (0) | 2024.08.31 |
[백준] 10820 문자열 분석 - Implementation / Java (0) | 2024.08.30 |
[백준] 1292 쉽게 푸는 문제 - Implementation / Java (0) | 2024.08.29 |
댓글