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

devel_liz·2024년 11월 25일
0

코딩테스트

목록 보기
9/45

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(num_list: IntArray): IntArray {
        val lastIndex = num_list.size - 1
        val lastValue = num_list[lastIndex]
        val lastPreviousValue = num_list[lastIndex - 1]
        var addValue = 0
        addValue = if(lastValue > lastPreviousValue) {
            lastValue - lastPreviousValue
    }else {
            lastValue * 2
        }
       return num_list + addValue
    }
}

📝 다른 사람의 문제 풀이

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()    
    }
}

🖊 문제 풀이 시 알면 좋을 것

  • 구조 분해 선언

    • 컬렉션, 데이터 클래스, 또는 기타 반환된 값을 여러 변수로 나누어 동시에 할당하는 방식입니다.
      val pair = listOf(1, 2)
      val (first, second) = pair
      println(first)  // 출력: 1
      println(second) // 출력: 2
  • size

    • 배열 또는 리스트의 크기를 반환합니다.
      val arr = intArrayOf(1, 2, 3)
      println(arr.size) // 출력: 3
  • toMutableList()

    • 불변 배열(IntArray) 또는 리스트를 변경 가능한 리스트로 변환합니다.
      • 배열을 수정 가능한 형태로 바꿔 요소를 추가할 수 있게 합니다.
      val arr = intArrayOf(1, 2, 3)
       val mutableList = arr.toMutableList()
                         mutableList.add(4) // 이제 가능
      				   println(mutableList) // 출력: [1, 2, 3, 4]
  • apply

    • 객체에 대해 여러 작업을 수행하고, 객체 자신을 반환합니다.
      • 코드 블록에서 this로 객체를 다룰 수 있어 깔끔한 구문을 제공합니다.
        val list = mutableListOf(1, 2).apply {
        add(3) // `this`는 list를 가리킴
        add(4)
        }
        println(list) // 출력: [1, 2, 3, 4]
  • takeLast()

    • 리스트나 배열의 마지막 몇 개 요소를 반환합니다.
      • 뒤에서부터 필요한 요소를 가져옵니다.
        val arr = listOf(1, 2, 3, 4)
        println(arr.takeLast(2)) // 출력: [3, 4]
  • add()

    • 변경 가능한 리스트(MutableList)에 새로운 요소를 추가합니다.
      • 리스트 끝에 값을 추가합니다.
        val mutableList = mutableListOf(1, 2)
        mutableList.add(3)
        println(mutableList) // 출력: [1, 2, 3]

📌 마치며

kotlin에서 제공하는 함수들을 적절히 사용해 가독성을 높이는 연습을 해야겠다.

profile
Android zizon

0개의 댓글

관련 채용 정보