관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 마지막 두 원소 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - 마지막 두 원소 (Kotlin)

참깨빵위에참깨빵_ 2023. 12. 30. 02:00
728x90
반응형
정수 리스트 num_list가 주어질 때, 마지막 원소가 그 전 원소보다 크면 마지막 원소에서 그 전 원소를 뺀 값, 마지막 원소가 그 전 원소보다 크지 않다면 마지막 원소를 2배한 값을 추가해서 리턴하는 함수를 완성하라

 

 

주먹구구식으로 아래처럼 풀었다.

 

class Solution {
    fun solution(numList: IntArray): ArrayList<Int> {
        val takeLastTwo: List<Int> = numList.takeLast(2)
        val list = ArrayList<Int>()
        for (num in numList) {
            list.add(num)
        }
        val last = takeLastTwo[1]
        val beforeLast = takeLastTwo[0]
        if (last > beforeLast) {
            list.add(last - beforeLast)
        } else {
            list.add(last * 2)
        }

        return list
    }
}

 

다른 풀이를 찾아보니 아래처럼 좀 더 간결하게 풀 수도 있다.

 

class Solution {
    fun solution(num_list: IntArray): IntArray {
        val answer = num_list.toMutableList().apply {
            val (first, second) = num_list.takeLast(2)
            if (first < second) add(second - first)
            else add(second + second)
        }
        return answer.toIntArray()    
    }
}

 

반응형
Comments