본문 바로가기
프로그래머스/Lv. 0

[Java/자바] 프로그래머스 Lv. 0 n 번째 원소까지

by 감자감자곰 2023. 7. 24.

문제

정수 리스트 num_list 정수 n 주어질 , num_list 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.


제한사항

  • 2 ≤ num_list의 길이 ≤ 30
  • 1 ≤ num_list의 원소 ≤ 9
  • 1 ≤ n ≤ num_list 길이 ___

입출력 예 

num_list n result
[2, 1, 6] 1 [2]
[5, 2, 1, 7, 5] 3 [5, 2, 1]

입출력 예 설명

입출력 예 #1

  • [2, 1, 6]의 첫 번째 원소부터 첫 번째 원소까지의 모든 원소는 [2]입니다.

입출력 예 #2

  • [5, 2, 1, 7, 5] 번째 원소부터 번째 원소까지의 모든 원소는 [5, 2, 1]입니다.

Solution.java

class Solution {
    public int[] solution(int[] num_list, int n) {
        int[] answer = {};
        answer = new int[n];
        
        for(int i=0; i<n; i++){
            answer[i] = num_list[i];
        }
        
        return answer;
    }
}

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0

          at Solution.solution(Unknown Source)

          at SolutionTest.lambda$main$0(Unknown Source)

          at SolutionTest$SolutionRunner.run(Unknown Source)

          at SolutionTest.main(Unknown Source)

 

위의 코드에서 'answer = new int[n];' 부분을 까먹은 채 for 문에만 집중해서 코드를 작성하니 이런 오류를 마주하게 되었다. 저 오류를 해석해 보면, index 0이 배열의 길이인 0을 벗어났다는 뜻인데, 애초에 빈 배열만 선언해 두고 그 크기를 지정해주지 않아(int[] answer = {};만 작성해 둔 상태) 저런 오류가 발생한 것이다.

 

오류를 바로 해결하긴 했지만, 다음부턴 정신 차리고 코딩하자는 의미에서 내용을 적어보았다...ㅎ....

댓글