마지막 두 원소

nacSeo (낙서)·2024년 1월 8일
0

프로그래머스

목록 보기
18/169

문제 설명

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

제한 사항

2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9

나의 코드

class Solution {
    public int[] solution(int[] num_list) {
        int last = num_list.length;
        int[] answer = new int[last+1];
        System.arraycopy(num_list, 0, answer, 0, last);
        if(num_list[last-1]>num_list[last-2]) {
            answer[last] = num_list[last-1] - num_list[last-2];
        } else {
            answer[last] = num_list[last-1] * 2;
        }
        return answer;
    }
}

다른 사람 코드

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

삼항연산자를 사용하면 편리하다.. 습관들여보자

느낀 점

코드스테이츠 때 학습했을 때 배열을 복사하는 System.arraycopy 메소드도 함께 활용하였다.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글