마지막 두 원소 해결

gotcha!!·2023년 7월 26일
0

코딩테스트

목록 보기
10/36

문제

처음 내가 작성한 코드

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int [num_list.length+1];
        
        int lastNum = num_list.length-1;
        int preNum = num_list.length-2;
        for(int i = 0; i<num_list.length; i++){
            answer.add(num_list[i]);
        }
        if(num_list[lastNum] > num_list[preNum]){
            answer.add(num_list[lastNum] - num_list[preNum]);
        }else{
            answer.add(num_list[lastNum*2]);
        }
        return answer;
    }
}

근데 여기서 문제점이 Java배열은 고정된 크기를 갖기에, add()를 사용할 수 없다.
위에서 내가 아래 처럼 크기를 선언했는데 add()를 사용하고 있었다.

int[] answer = new int [num_list.length+1];

너무 생각 없이 쳤는지 문제점이 하나 둘이 아니다.
뭐 가끔 기본적인게 생각이 안날때도 많다.
아직 내가 많이 부족한거겠지..

최종 수정 코드

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int [num_list.length + 1];
        int lastNum = num_list.length-1;
        int preNum = num_list.length-2;
        for(int i = 0; i<num_list.length; i++){
            answer[i] = num_list[i];
        }
        if(num_list[lastNum] > num_list[preNum]){
            answer[lastNum + 1] = num_list[lastNum] - num_list[preNum];
        }else{
            answer[lastNum + 1] = num_list[lastNum] *2;
        }
        return answer;
    }
}

정답!

profile
ha lee :)

0개의 댓글