[JAVA] 프로그래머스 : 수열과 구간 쿼리 2

조예빈·2024년 8월 9일
0

Coding Test

목록 보기
100/138

https://school.programmers.co.kr/learn/courses/30/lessons/181923

for문을 돌릴 때 마다 새로운 ArrayList를 만들어 주어야 한다.

import java.util.*;

class Solution {
    public ArrayList solution(int[] arr, int[][] queries) {
        
        ArrayList<Integer> answer = new ArrayList<>();
        //s<=i<=e, arr[i]가 가장 작은 것. 단 k보다 커야 함
        for(int i=0; i<queries.length; i++){
            ArrayList<Integer> list = new ArrayList<>();
            int s = queries[i][0];
            int e = queries[i][1];
            int k = queries[i][2];
            for(int j=s; j<=e; j++){
                if(arr[j] > k){
                    list.add(arr[j]); //우선 list에 저장
                }
            }
            
            if(list.isEmpty()){
                answer.add(-1);
            } else {
                //저장된 것 정렬
                Collections.sort(list);
                //이 중 가장 작은 것을 반환
                answer.add(list.get(0));
            }
        }
        
        return answer;
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글