Develop

[프로그래머스] 마지막 두 원소 본문

개인 공부/프로그래머스

[프로그래머스] 마지막 두 원소

개발 기록 2024. 1. 24. 23:23

문제

 

내풀이

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];
        }

        answer[num_list.length]
            = (num_list[num_list.length-1] > num_list[num_list.length-2]? num_list[num_list.length-1]-num_list[num_list.length-2] : num_list[num_list.length-1]*2);


        return answer;
    }
}

 

 

다른풀이

import java.util.stream.IntStream;

class Solution {
    public int[] solution(int[] num_list) {
        return IntStream.iterate(0, i -> i + 1)
                        .limit(num_list.length + 1)
                        .map(i -> i == num_list.length ? (num_list[i - 1] > num_list[i - 2] ? num_list[i - 1] - num_list[i - 2] : 2 * num_list[i - 1]) : num_list[i])
                        .toArray();
    }
}

 

 

느낀점

맨 마지막 숫자와 그 앞의 숫자가 같을 경우는 어떻게 처리할지 제시되어 있지 않아서

나도 두 숫자가 같을 경우는 고려하지 않았다

다른 사람들의 코드를 봐도 딱히 없었음

문제 자체는 쉬웠지만 있을 수 있는 경우의 수나 예외처리를 중요하게 생각하는 나에게는 조금 불편한 문제였다