https://www.acmicpc.net/problem/2756
1. 아이디어
2차원 평면에서 두 점 사이의 거리 공식을 활용하면 간단하게 해결할 수 있다.
2. 문제풀이
다트 위치가 좌표로 주어지는데 Math.sqrt 메서드와 Math.pow 메서드로 두 점 사이의 거리를 구할 수 있으므로 이를 활용해 구현했다.
3. 코드
import java.io.*;
import java.util.*;
public class Main {
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;
int T = Integer.parseInt(br.readLine());
for (int tc = 1; tc <= T; tc++) {
st = new StringTokenizer(br.readLine());
double[][] player1 = new double[3][2];
for (int i = 0; i < 3; i++) {
player1[i][0] = Double.parseDouble(st.nextToken());
player1[i][1] = Double.parseDouble(st.nextToken());
}
double[][] player2 = new double[3][2];
for (int i = 0; i < 3; i++) {
player2[i][0] = Double.parseDouble(st.nextToken());
player2[i][1] = Double.parseDouble(st.nextToken());
}
int point1 = 0;
int point2 = 0;
for (int i = 0; i < 3; i++) {
point1 += getPoint(player1[i][0], player1[i][1]);
point2 += getPoint(player2[i][0], player2[i][1]);
}
if (point1 > point2) {
sb.append("SCORE: ").append(point1).append(" to ").append(point2).append(", PLAYER 1 WINS.\n");
} else if (point1 < point2) {
sb.append("SCORE: ").append(point1).append(" to ").append(point2).append(", PLAYER 2 WINS.\n");
} else {
sb.append("SCORE: ").append(point1).append(" to ").append(point2).append(", TIE.\n");
}
}
bw.write(sb.toString());
bw.flush();
}
private static int getPoint(double x, double y) {
double distance = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
if (distance > 15) return 0;
else if (distance > 12) return 20;
else if (distance > 9) return 40;
else if (distance > 6) return 60;
else if (distance > 3) return 80;
else return 100;
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 14394번 - 9-퍼즐 [Java] (0) | 2025.01.15 |
---|---|
[백준] 2847번 - 게임을 만든 동준이 [Java] (0) | 2025.01.15 |
[백준] 17413번 - 단어 뒤집기 2 [Java] (0) | 2025.01.14 |
[백준] 2999번 - 비밀 이메일 [Java] (0) | 2025.01.14 |
[백준] 28702번 - FizzBuzz [Java] (0) | 2025.01.14 |