백준 - 직각삼각형 [4153]

8518 단어 Java알고리즘Java

문제

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

입력

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

출력

각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.

풀이

해당 문제는 피타고라스 정리를 이용하는 문제이다. 입력으로 주어진 3개의 변의 길이를 각각 피타고라스에 부합하는지 확인한 뒤 맞으면 "right" 틀리면 "wrong"을 출력해주면 된다.

Math.pow()를 사용하면 쉽게 제곱한 값을 구할 수 있기에 이를 사용하면 손쉽게 구현할 수 있다.

소스

import java.util.*;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		while (true) {
			int a = sc.nextInt();
			int b = sc.nextInt();
			int c = sc.nextInt();

			if (a == 0 && b == 0 && c == 0) {
				break;
			}

			if (check(a, b, c)) {
				System.out.println("right");
			} else {
				System.out.println("wrong");
			}
		}

	}

	public static boolean check(int a, int b, int c) {
		double powA = Math.pow(a, 2);
		double powB = Math.pow(b, 2);
		double powC = Math.pow(c, 2);

		boolean result = false;

		if (powA == (powB + powC)) {
			result = true;
		} else if (powB == (powA + powC)) {
			result = true;
		} else if (powC == (powA + powB)) {
			result = true;
		}

		return result;

	}
}

좋은 웹페이지 즐겨찾기