궁금한게 많은 코린이의 Developer 노트

[프로그래머스] 카운트 업 본문

코딩테스트

[프로그래머스] 카운트 업

lemonarr🍋 2025. 3. 13. 22:24

나의 문제풀이

class Solution {
    public int[] solution(int start_num, int end_num) {
        int[] answer = new int[(end_num-start_num)+1];
        for(int i = start_num; i <= end_num; i++){
            answer[i - start_num] = i;
        }
        return answer;
    }
}

초반에는 ArrayList로 만들어서 반복문으로 add 메서드로 값을 하나씩 삽입하는 방법을 생각했었지만

생각해보니 고정된 배열 값으로도 문제를 풀 수 있을 것 같아서 방안을 변경해서 진행했다.

 

ArrayIndexOutOfBoundsException

for문에 i = start_num이라고 설정해주었다면,

answer[i] 부분도 똑같이 start_num 값으로 적용되므로

answer 배열은 start_num(ex. " start_num = 3" 이라고 가정)부터 시작한다.

즉 0,1,2 부분은 모두 "0"으로 채워져 있기 상태에서 index 3부터 반복문이 적용된다.

[0,0,0,3,4,5,6,7,8,9,10] ---> 기존의 고정된 배열 값을 초과하게 된다.

answer[i - start_num] 으로 설정해주어야 answer 배열의 처음부터 차례대로 값이 들어가게 된다.