자바/백준

[백준 4153] 직각삼각형

슈슈버거 2022. 7. 13. 22:04

문제

https://www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

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

www.acmicpc.net


내가 작성한 코드

import java.util.*;

public class 백준4153 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		
		boolean state = true;

		while(state == true) {
			String line = sc.nextLine();
			String[] line2 = line.split(" ");
			
			if(line2[0].equals("0") && line2[1].equals("0") && line2[2].equals("0")) {
				state = false;
				break;
			}
			else {
				int[] twice = new int[3];
				twice[0] = Integer.parseInt(line2[0]);
				twice[1] = Integer.parseInt(line2[1]);
				twice[2] = Integer.parseInt(line2[2]);
				
				Arrays.sort(twice);
				
				if((int)Math.pow(twice[2],2) == (int)Math.pow(twice[0], 2) + (int)Math.pow(twice[1], 2)) {
					System.out.println("right");
				}
				else {
					System.out.println("wrong");
				}
			}
		}
	}

}

while문을 이용해서 "0 0 0"이 입력되면 더 이상 입력받는 것을 멈추도록 해주었다.

그 외의 경우에는 반복문 안의 if문을 이용해서 직각삼각형 여부를 판단하도록 해주었다

 

제곱 값을 구하는 과정에서 Math.pow()를 사용했다

twice라는 int형 배열을 만들어준 다음에 세 변의 길이를 저장해주고 sort를 이용해 오름차순으로 정렬해주었다

 

정렬한 다음 직각삼각형 여부를 판단하는 식을 작성해준 다음에 맞을 경우 right를

틀릴 경우 wrong을 출력하도록 해주었다