today_is

[ 알고리즘 ] k번째수 본문

카테고리 없음

[ 알고리즘 ] k번째수

ye_rang 2024. 6. 17. 16:59

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

코드

import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        
        for(int i=0; i< commands.length; i++) {
            int start = commands[i][0];
            int end = commands[i][1];
            int num = commands[i][2];
            
            int[] newArray = Arrays.copyOfRange(array, start-1, end);
            Arrays.sort(newArray);
            
            answer[i] = newArray[num-1];
        }
        
        return answer;
    }
}

 

 

 

 

 오류발생 

ArrayIndexOutOfBoundsException 예외발생

 

로직은 이상 없어보이는데

자꾸 예외발생이 떠서 어느부분이 문제인지 찾기 위해 

머릿속으로 디버깅해봤다

 

알고보니 처음부터 주어지는 answer배열이 commands 배열의 길이만큼 초기화되어있지 않아서 생기는 문제였다

 

변경 전 변경 후
int[] answer = {}; int[] answer = new int[commands.length];

 

 

 

 

 

문제 해결완료 !!

점수를 너무 짜게 준다

재미없게