마지막 두 원소 Lv. 0

박영준·2023년 5월 31일
0

코딩테스트

목록 보기
168/300
class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = {};
        return answer;
    }
}


해결법

방법 1

class Solution {
    public int[] solution(int[] num_list) {
    
    	// 마지막 원소 > 그전 원소 -> 마지막 원소에서 그전 원소를 뺀 값을 배열에 추가
        // 마지막 원소 <= 그전 원소 -> 마지막 원소를 두 배한 값을 배열에 추가
    
        int[] answer = new int[num_list.length + 1];
        
        int last = 0;		// 배열에서 추가된 마지막 인덱스
        
        if (num_list[num_list.length-1] > num_list[num_list.length-2]) {
            last = num_list[num_list.length-1] - num_list[num_list.length-2];
        } else {
            last = num_list[num_list.length-1] * 2;
        }
        
        // 인덱스가 하나 추가된 answer 배열에 num_list를 넣음 -> 마지막 인덱스는 빈 상태
        for (int i = 0; i < num_list.length; i++) {
            answer[i] = num_list[i];
        }
        
        answer[answer.length - 1] = last;		// 빈 인덱스에 last 변수를 담는다
        
        return answer;
    }
}
  • 배열에서 추가된 마지막 인덱스를 만들고, 이를 원래 배열과 합쳐서 출력하는 게 핵심

방법 2

class Solution {
    public int[] solution(int[] num_list) {
    
        int[] answer = new int[num_list.length+1];

        for (int i = 0; i < num_list.length; i++) {
            answer[i] = num_list[i];
        }

        int last = num_list[num_list.length-1];
        int before = num_list[num_list.length-2];

        answer[answer.length-1] = last > before ? last - before : last*2;

        return answer;
    }
}
  • 미리 마지막 인덱스를 비우고 앞에 인덱스들은 채워둔다.

마지막 두 원소 Lv. 0

profile
개발자로 거듭나기!

0개의 댓글