DINGA DINGA
article thumbnail
Published 2021. 7. 18. 15:15
[백준] 4153번: 직각삼각형 JAVA/BOJ
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

'JAVA > BOJ' 카테고리의 다른 글

[백준] 2675번: 문자열 반복  (0) 2021.07.19
[백준] 1929번: 소수 구하기  (1) 2021.07.18
[백준] 1546번: 평균  (0) 2021.07.11
[백준] 2753번: 윤년  (1) 2021.07.11
[백준] 10172번: 개  (1) 2021.07.01