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

[프로그래머스/Java] [PCCE 기출문제] 10번 / 데이터 분석

by 현장 2026. 3. 13.

-Code

import java.util.*;

class Solution {
    public int[][] solution(int[][] data, String ext, int val_ext, String sort_by) {
        // 주어진 조건보다 작은 경우만 저장
        ArrayList<int[]> answer = new ArrayList<>();
        for (int[] d : data) {
            int colNum = getColNum(ext);
            if(d[colNum] < val_ext) {
                answer.add(d);
            }
        }
        // 주어진 정렬 컬럼을 기준으로 정렬
        int sortColNum = getColNum(sort_by);
        answer.sort((o1, o2) -> {
          return o1[sortColNum] - o2[sortColNum];
        });
        return answer.stream().toArray(int[][]::new);
    }
    // 이름에 해당하는 인덱스 반환
    private int getColNum(String name) {
        if(name.equals("code")) return 0;
        if(name.equals("date")) return 1;
        if(name.equals("maximum")) return 2;
        else return 3;
    }
}