Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 멤버변수
- 안드로이드 레트로핏 crud
- rxjava hot observable
- 큐 자바 코드
- ar vr 차이
- ANR이란
- 스택 자바 코드
- 안드로이드 레트로핏 사용법
- 안드로이드 유닛 테스트 예시
- 클래스
- android retrofit login
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트
- 2022 플러터 안드로이드 스튜디오
- android ar 개발
- 자바 다형성
- Rxjava Observable
- rxjava disposable
- 안드로이드 유닛테스트란
- 안드로이드 os 구조
- jvm이란
- 안드로이드 라이선스
- 플러터 설치 2022
- 서비스 vs 쓰레드
- 안드로이드 라이선스 종류
- 스택 큐 차이
- rxjava cold observable
- 2022 플러터 설치
- jvm 작동 원리
- 객체
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 배열 자르기 (Kotlin) 본문
728x90
반응형
정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 인덱스부터 num2번 인덱스까지 자른 정수 배열을 리턴하는 solution()을 완성하라
배열을 자르는 방법이다. 처음 풀 때 intArray를 자르는 방법을 몰라서 리스트로 변환한 다음 subList()를 써서 배열을 자르고, 그 결과를 다시 intArray로 만드는 번거로운 방식으로 풀었다.
class Solution {
fun solution(numbers: IntArray, num1: Int, num2: Int): IntArray =
numbers.toList().subList(num1, num2 + 1).toIntArray()
}
num2를 넣으면 그 이전 인덱스까지만 잘라지고 num2번 인덱스의 숫자는 포함되지 않아서 num2에 1을 더했다.
그런데 굳이 이렇게 귀찮게 작성하지 않아도 풀 수 있는 방법이 분명 있을 것 같다. intArray를 자르는 방법을 찾다 보니 sliceArray()라는 함수를 발견했다.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/slice-array.html
지정된 인덱스에서 이 배열의 요소를 포함하는 배열을 리턴한다
이 함수의 원형은 아래와 같다.
public fun IntArray.sliceArray(indices: IntRange): IntArray {
if (indices.isEmpty()) return IntArray(0)
return copyOfRange(indices.start, indices.endInclusive + 1)
}
매개변수로 넣은 intRange의 시작값, 끝값 + 1을 첫 인덱스, 마지막 인덱스로 하는 배열을 복사해서 리턴한다. 복사 처리는 copyOfRange()의 영향으로 일어난다.
이 함수를 사용하면 아래처럼 코드를 작성할 수 있다.
class Solution {
fun solution(numbers: IntArray, num1: Int, num2: Int): IntArray = numbers.sliceArray(num1..num2)
}
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 진료순서 정하기 (Kotlin) (0) | 2022.12.24 |
---|---|
[Algorithm] 프로그래머스 - 외계행성의 나이 (Kotlin) (0) | 2022.12.24 |
[Algorithm] 프로그래머스 - 짝수의 합 (Kotlin) (0) | 2022.12.23 |
[Algorithm] 프로그래머스 - 양꼬치 (Kotlin) (0) | 2022.12.23 |
[Algorithm] 프로그래머스 - 각도기 (Kotlin) (0) | 2022.12.23 |
Comments