JAVA/BOJ
[백준] 4153번: 직각삼각형
와금
2021. 7. 18. 15:15
728x90
https://www.acmicpc.net/problem/4153
4153번: 직각삼각형
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
www.acmicpc.net
코드
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] n = new int[3];
while (true) {
for (int i = 0; i < 3; i++)
n[i] = scanner.nextInt();
Arrays.sort(n);
if (n[2] == 0)
break;
if (n[0] * n[0] + n[1] * n[1] == n[2] * n[2])
System.out.println("right");
else
System.out.println("wrong");
}
scanner.close();
}
}
설명
while 무한 루프 안에서 작동하고, 0 0 0이 입력되면 break 된다.
각 변의 길이를 받아 저장할 배열 n을 만들고, n의 각 인덱스에 변의 길이를 저장한다.
n을 오름차순으로 정렬하여 만약 가장 큰 변의 길이(n[2])가 0이면 나머지 변의 길이도 0이므로 break 한다.
만약 0 0 0이 아니라면, 피타고라스의 정리를 이용해 직각삼각형인지 판별한다. (a^2 + b^2 = c^2)
직각삼각형이 맞으면 right을, 아니면 wrong을 출력한다.
728x90