입력 받는 부분이 문제

String line;
while (!(line = br.readLine()).equals("0 0 0")) {
    // 입력 처리
}

이렇게 받아야 한다.

package baekjoon.class2.B4513;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String line;
        while(!(line = br.readLine()).equals("0 0 0")){
            String[] input = line.split(" ");

            // 여기서 arrays.sort 할 배열 하나 만들기
            int[] sides = new int[3];

            sides[0] = Integer.parseInt(input[0]);
            sides[1] = Integer.parseInt(input[1]);
            sides[2] = Integer.parseInt(input[2]);

//            int lineMax = Math.max(a, (Math.max(b,c)));
//            int sum = a + b + c;
            /**
             * lineMax로 가장 긴 변의 길이를 구할수도 있지만
             * 그러면 a,b,c중 뭐가 가장 긴 건지 알 수 없다.
             * 따라서 그냥 Arrays.sort로 하는 게 제일 좋다
             * */
            Arrays.sort(sides);

            int a = sides[0];
            int b = sides[1];
            int c = sides[2];

            if (c * c == a * a + b * b) {
                System.out.println("right");
            } else {
                System.out.println("wrong");
            }
        }

        br.close();
    }
}

참고로 아래 코드는 무한루프에 빠진다.

String input;
        input = br.readLine();
        int[] array = new int[3];
        while(!(input.equals("0 0 0"))){
            for(int i = 0; i < 3; i++) {
                array[i] = Integer.parseInt(Arrays.toString((input.split(" "))));
            }
        }

왜냐면, input을 while문 밖에서 받았기 때문.

또, 이 코드도 잘못됐다. 왜냐면

array[i] = Integer.parseInt(Arrays.toString((input.split(" "))));

input.split(" ")String[]이고 Arrays.toString()은 “[6, 8, 10]”같은 문자열을 반환한다.

NumberFormatException 예외 발생