ailen22 2024. 1. 26. 19:53

[문제]

정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요.

 

num_list result
[2, 1, 6] [2, 1, 6, 5]
[5, 2, 1, 7, 5] [5, 2, 1, 7, 5, 10]

 

 

 

 

[답]

class Solution {
    public int[] solution(int[] num_list) {
    	//원래의 원소갯수보다 하나 더 늘려야함으로 +1 해줌
        int[] answer = new int[num_list.length + 1];
        int last = num_list[num_list.length - 1];
        int last2 = num_list[num_list.length - 2];

        for(int i = 0; i < num_list.length; i++) {
            answer[i] = num_list[i];
            if(last > last2) {
                answer[num_list.length] = last - last2;
            } else {
                answer[num_list.length] = last * 2;
            }
        }
        return answer;
    }
}

 

 

 

 

[다른사람 풀이]

import java.util.*;

class Solution1 {
    public List solution(int[] num_list) {
    	//ArrayList사용
        List<Integer> answer = new ArrayList<>();
        
        int last = num_list[num_list.length - 1];  
        int lastb = num_list[num_list.length - 2];  
        
        for(int i = 0; i < num_list.length; i++){
            answer.add(num_list[i]);
        }
        if(last > lastb){
            answer.add(last - lastb);
        } else {
            answer.add(last * 2);
        }
        return answer;
    }
}