본문 바로가기
코딩테스트

[프로그래머스] n 번째 원소까지

by liz_devel 2025. 1. 16.

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(num_list: IntArray, n: Int): IntArray {
     return  num_list.copyOfRange(0, n)
    }
}

📝 다른 사람의 문제 풀이

class Solution {
    fun solution(num_list: IntArray, n: Int): IntArray = num_list.slice(0 until n).toIntArray()
}

🖊 문제 풀이 시 알면 좋을 것

 

  • copyOfRange 메서드
    • 역할: 배열의 특정 범위를 복사해 새로운 배열을 반환.
    • 특징: 시작 인덱스는 포함, 끝 인덱스는 포함하지 않음.
val arr = intArrayOf(1, 2, 3, 4, 5) val result = arr.copyOfRange(0, 3) // [1, 2, 3]

 

  • slice 메서드
    • 역할: 배열 또는 리스트에서 지정한 범위의 요소를 선택.
    • 특징:
      • 범위의 시작과 끝 모두 포함하는 slice 범위를 지정 가능.
      • 반환 타입이 List이므로, 배열로 변환하려면 .toIntArray() 필요.
val arr = intArrayOf(1, 2, 3, 4, 5)
val result = arr.slice(0..2).toIntArray()   // [1, 2, 3] (0, 1, 2 포함)
val result2 = arr.slice(0 until 3).toIntArray()  // [1, 2, 3] (0, 1, 2 포함, 3 제외)
  • until 키워드
    • 역할: 범위를 지정할 때 마지막 값을 포함하지 않음.
    • 사용 예제:
for (i in 0 until 3) { println(i) // 0, 1, 2 }

 

 

반응형