본문 바로가기
Beakjoon&프로그래머스/Java

[백준/Java] 20949번 효정과 새 모니터

by 현장 2026. 1. 6.

-Code

import java.util.*;
import java.io.*;

public class BOJ20949 {
    public static void main(String[] args) throws IOException {
        BufferedReader br =
                new BufferedReader(new InputStreamReader(System.in));
		
        int n = Integer.parseInt(br.readLine());
        // ppi와 index를 저장
        int[][] ppiAndIdxArray = new int[n][2];
        for (int i = 0; i < n; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int w = Integer.parseInt(st.nextToken());
            int h = Integer.parseInt(st.nextToken());
            int ppi = w * w + h * h;
            ppiAndIdxArray[i] = new int[] { ppi, i };
        }
		// ppi가 같으면 index 오름차순 아니면 ppi 내림차순
        Arrays.sort(ppiAndIdxArray, (o1, o2) -> {
            if (o1[0] == o2[0]) {
                return o1[1] - o1[1];
            }
            return o2[0] - o1[0];
        });
        // 출력
        for (int[] ppiAndIds : ppiAndIdxArray) {
            System.out.println(ppiAndIds[1] + 1);
        }
    }
}