Algorithm/기타
[백준 4153번] 직각삼각형
agility
2019. 12. 8. 23:40
백준알고리즘 4153번 : 직각삼각형
대각선, 가로, 세로 3개의 값을 받아서,
"가장 큰 값의 제곱이 작은 두 값의 제곱의 합과 같은가?"
라는 조건문 충족 여부에 따라 'right'나 'wrong'을 출력하면 되는 문제이다.
주의 사항이라고 한다면,
1. 일반적인 문제와는 달리 테스트 케이스의 갯수가 주어지지 않고, 0 0 0이 나올때 입력이 종료되는 점,
2. 그리고 오름차순으로만 입력을 받지는 않기 때문에 정렬을 해줘야 한다는 점이다.
(예제에서는 오름차순으로 출력해주길래 그런 줄 알았더니 아니였다.. 문제에 나온 조건대로만 풀어야겠다.)
풀이 과정
1. while문을 이용하여, 0이 들어오면 입력 받기를 중단하도록 한다.
2. 배열로 3개의 값을 받는다.
3. 배열을 오름차순(or 내림차순)으로 정렬한 뒤, "가장 큰 값의 제곱 == 다른 두 값의 제곱의 합"
조건의 충족여부를 판별한다.
4. 충족 여하에 따라 출력한다.
소스 ▽
더보기
import java.util.Arrays;
import java.util.Scanner;
public class Main {// 4153 직각 삼각형
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int temp = -1;
while (temp != 0) {
int[] arr = new int[3];
int a = 0;
for (int j = 0; j < arr.length; j++) {
arr[j] = sc.nextInt();
}
temp = arr[2];
if (temp != 0) {
Arrays.sort(arr);
if ((arr[0] * arr[0] + arr[1] * arr[1]) == arr[2] * arr[2]) {
System.out.println("right");
} else {
System.out.println("wrong");
}
}
}
}
}
Summary
Arrays.sort() : 오름차순 정렬