🗒 문제

📝 나의 문제풀이
class Solution {
fun solution(numbers: IntArray, num1: Int, num2: Int): IntArray {
var answer = mutableListOf<Int>()
for(num in num1..num2){
answer.add(numbers[num])
}
return answer.toIntArray()
}
}
📝 다른 사람의 문제 풀이
다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.
class Solution {
fun solution(numbers: IntArray, num1: Int, num2: Int) = numbers.sliceArray(num1..num2)
}
🖊 문제 풀이 시 알면 좋을 것
numbers.sliceArray(num1..num2)
이 한 줄에 3가지 개념이 들어 있어.
sliceArray() 함수
✔ 역할
- IntArray에서 원하는 인덱스 범위만 잘라서
- 새로운 IntArray를 반환
val arr = intArrayOf(10, 20, 30, 40, 50)
arr.sliceArray(1..3)
// 결과: [20, 30, 40]
📌 num2 포함 → 이 문제에 딱 맞음
원본 배열은 바뀌지 않는다
numbers.sliceArray(...)
✔ 불변
✔ 원본 numbers는 그대로 유지
✔ 새 배열을 만들어 반환
🧠 꼭 알아야 할 범위 관련 정리
🔹 sliceArray
- 끝 포함
- 범위 객체 (IntRange) 사용
sliceArray(1..3)
🔹 copyOfRange (자주 헷갈림)
numbers.copyOfRange(1, 4)
| 함수 | 끝 포함? |
| sliceArray | ✅ 포함 |
| copyOfRange | ❌ 미포함 |
✨ 이 문제에서 기억하면 좋은 한 줄
“배열 자르기 문제 = sliceArray 먼저 떠올려라”
반응형
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 점의 위치 구하기 (0) | 2025.12.19 |
|---|---|
| [프로그래머스] 피자 나눠 먹기 (3) (0) | 2025.12.19 |
| [프로그래머스] 삼각형의 완성조건 (1) (0) | 2025.12.19 |
| [프로그래머스] 머쓱이보다 키 큰 사람 (0) | 2025.12.19 |
| [프로그래머스] 최댓값 만들기(1) (0) | 2025.12.19 |