🔗 백준 4153 - 직각삼각형
문제


알고리즘 분류
풀이
1. 입력
while(true) {
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[3];
arr[0] = Integer.parseInt(st.nextToken());
arr[1] = Integer.parseInt(st.nextToken());
arr[2] = Integer.parseInt(st.nextToken());
if(arr[0] == 0) break;
2. 직각삼각형인지 판별
- 정렬함으로써 가장 긴 변이 arr[2]에 저장됨
- 피타고라스 정리 (가장 긴 변의 제곱 = 다른 두변을 각각 제곱하여 더한 것)
public static boolean isPythagoras(int[] arr){
Arrays.sort(arr);
if((arr[2]*arr[2]) == (arr[1]*arr[1]) + (arr[0]*arr[0])){
return true;
} else return false;
}
3. 결과값 출력
if (isPythagoras(arr)) {
sb.append("right").append("\n");
} else sb.append("wrong").append("\n");
전체 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while(true) {
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[3];
arr[0] = Integer.parseInt(st.nextToken());
arr[1] = Integer.parseInt(st.nextToken());
arr[2] = Integer.parseInt(st.nextToken());
if(arr[0] == 0) break;
if (isPythagoras(arr)) {
sb.append("right").append("\n");
} else sb.append("wrong").append("\n");
}
System.out.println(sb);
}
public static boolean isPythagoras(int[] arr){
Arrays.sort(arr);
if((arr[2]*arr[2]) == (arr[1]*arr[1]) + (arr[0]*arr[0])){
return true;
} else return false;
}
}