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() : 오름차순 정렬