서비스 기획자 기록

[백준] 4153번 : 직각삼각형 - Java 본문

백준

[백준] 4153번 : 직각삼각형 - Java

주니5947 2025. 1. 8. 21:12

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


  • 문제


  • 풀이

- 가장 긴 변의 제곱이 나머지 두 변의 제곱이므로 최대값을 찾아서 해당 계산을 수행해 직각삼각형인지 판별한다.

 

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		int arr[] = new int [3];
		
		while(true) {
			int max = 0;
			
			for (int i = 0; i < 3; i++) {
				int a = sc.nextInt();
				arr[i] = a;
				if (a > max)
					max = a;
			}
			
			if (arr[0]+arr[1]+arr[2] == 0)
				break;
			
			if (arr[0] == max) {
				if (max*max == arr[1]*arr[1] + arr[2]*arr[2])
					System.out.println("right");
				else
					System.out.println("wrong");
			}
			
			else if (arr[1] == max) {
				if (max*max == arr[0]*arr[0] + arr[2]*arr[2])
					System.out.println("right");
				else
					System.out.println("wrong");
			}
			else
				if (max*max == arr[0]*arr[0] + arr[1]*arr[1])
					System.out.println("right");
				else
					System.out.println("wrong");
			
		}
		sc.close();
	}
}

 

while 문으로 0 0 0을 입력받을 때까지 반복문을 돌려준다.

배열에 세 숫자를 입력받아서 최대값을 찾는다.

if 문으로 최대값에 따라 직각삼각형 판별을 계산해준다.

 

※ 최대값을 구하지 않고 if문으로 입력받은 각각의 경우에 right 그 외에는 모두 wrong처리를 해주는 게 훨씬 간단하다.

'백준' 카테고리의 다른 글

[백준] 2292번 : 벌집 - Java  (0) 2025.01.10
[백준] 1978번 : 소수 찾기 - Java  (0) 2025.01.10
[백준] 10818번 : 최소, 최대 - Java  (0) 2025.01.08
[백준] 3052번 : 나머지 - Java  (0) 2025.01.07
[백준] 2920번 : 음계 - Java  (0) 2025.01.07