-
[백준 - 1002번] 터렛 - JavaAlgorithm/BOJ(Baekjoon Online Judge) 2020. 9. 5. 11:14
이번에는 BOJ의 1002번 문제 "터렛" 을 풀어보도록 하자
성공한 코드는 다음과 같다.
import java.io.*; public class Main{ public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); String line = br.readLine(); int n = Integer.parseInt(line); for(int i = 0; i < n; i++){ line = br.readLine(); int x1, y1, r1, x2, y2, r2; x1 = Integer.parseInt(line.split(" ")[0]); y1 = Integer.parseInt(line.split(" ")[1]); r1 = Integer.parseInt(line.split(" ")[2]); x2 = Integer.parseInt(line.split(" ")[3]); y2 = Integer.parseInt(line.split(" ")[4]); r2 = Integer.parseInt(line.split(" ")[5]); if(r1 < r2){ int tempx = x2, tempy = y2, tempr = r2; x2 = x1; y2 = y1; r2 = r1; x1 = tempx; y1 = tempy; r1 = tempr; } int calcBtw = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); int calcComp; if(calcBtw < r1 * r1){ calcComp = (r1 - r2) * (r1 - r2); if(calcBtw == calcComp){ if(calcBtw == 0){ bw.write(-1 + "\n"); } else { bw.write(1 + "\n"); } } else if(calcBtw > calcComp){ bw.write(2 + "\n"); } else { bw.write(0 + "\n"); } } else if(calcBtw == r1 * r1){ bw.write(2 + "\n"); } else{ calcComp = (r1 + r2) * (r1 + r2); if(calcBtw == calcComp){ bw.write(1 + "\n"); } else if(calcBtw < calcComp){ bw.write(2 + "\n"); } else { bw.write(0 + "\n"); } } } bw.flush(); br.close(); bw.close(); } }
문제 : https://www.acmicpc.net/problem/1002
혹시 코드에 이상한 부분이나 틀린 부분이 있던지, 이해가 안가는 부분이 있다면 댓글로 알려주세요.
'Algorithm > BOJ(Baekjoon Online Judge)' 카테고리의 다른 글
[백준 - 1004번] 어린 왕자 - Java (0) 2020.09.05 [백준 - 1003번] 피보나치 함수 - Java (0) 2020.09.05 [백준 - 1001번] A-B - Java (0) 2020.09.05 [백준 - 1000번] A+B - Java (0) 2020.09.05 [백준 - 14681번] 사분면 고르기 - Java //Wello Horld // (0) 2020.04.17