코딩테스트/프로그래머스 Lv. 0

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

촙오 개발자 2025. 2. 3. 22:42
반응형

수열과 구간 쿼리 2

 

문제 설명

 

요구사항

  • queries[i][0] 과 queries[i][1] 사이의 값들 중 queries[i][2]의 값보다 크면서 가장 작은 값 리턴
  • 위의 값이 없다면 -1 리턴

 

테스트

package lv0;

public class 수열과_구간_쿼리_2 {
	public int[] solution(int[] arr, int[][] queries) {
        int[] answer = new int[queries.length];
        
        for(int i = 0; i < queries.length; i++) {
        	int minIndex = queries[i][0];
        	int maxIndex = queries[i][1];
        	
        	int min = 1000001; // 제한사항 k의 최대갑 + 1
        	
        	for(int j = minIndex; j <= maxIndex; j++) {
        		if(arr[j] > queries[i][2]) {
        			min = Math.min(arr[j], min); // 기준값보다 큰 수중 가장 작은수
        		}
        	}
        	
        	answer[i] = min;
        	
        	if(min == 1000001) {
        		answer[i] = -1;
        	} 
        	
        	
        }
        
        return answer;
    }
}

 

프로그래머스

class Solution {
    public int[] solution(int[] arr, int[][] queries) {
        int[] answer = new int[queries.length];
        
        for(int i = 0; i < queries.length; i++) {
        	int minIndex = queries[i][0];
        	int maxIndex = queries[i][1];
        	
        	int min = 1000001;
        	
        	for(int j = minIndex; j <= maxIndex; j++) {
        		if(arr[j] > queries[i][2]) {
        			min = Math.min(arr[j], min);
        		}
        	}
        	
        	answer[i] = min;
        	
        	if(min == 1000001) {
        		answer[i] = -1;
        	} 
        	
        	
        }
        
        return answer;
    }
}

 

결과

반응형