일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rxjava disposable
- rxjava cold observable
- 안드로이드 레트로핏 crud
- 객체
- 서비스 vs 쓰레드
- 클래스
- jvm 작동 원리
- 자바 다형성
- 안드로이드 라이선스
- jvm이란
- 플러터 설치 2022
- 안드로이드 유닛 테스트 예시
- Rxjava Observable
- 멤버변수
- 안드로이드 레트로핏 사용법
- 스택 큐 차이
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 os 구조
- android retrofit login
- 큐 자바 코드
- rxjava hot observable
- android ar 개발
- ANR이란
- 안드로이드 유닛테스트란
- ar vr 차이
- 안드로이드 유닛 테스트
- 서비스 쓰레드 차이
- 안드로이드 라이선스 종류
- 2022 플러터 설치
- 스택 자바 코드
- Today
- Total
목록알고리즘 문제 풀이/프로그래머스 (212)
나만을 위한 블로그
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n번째 원소까지의 모든 원소를 담은 리스트를 리턴하는 함수를 완성하라 n번째 원소부터 문제에서 사용했던 copyOfRange를 다시 사용하면 된다. 물론 문제에 맞춰서 사용방법을 바꿔야 한다. class Solution { fun solution(numList: IntArray, n: Int): IntArray = numList.copyOfRange(0, n) }
class Solution { fun solution(str_list: Array): Array { val indexL = str_list.indexOf("l") val indexR = str_list.indexOf("r") return when { indexL != -1 && (indexR == -1 || indexL str_list.sliceArray(0 until indexL) indexR != -1 -> str_list.sliceArray((indexR + 1) until str_list.size) else -> arrayOf() } } } l과 r의 인덱스를 가져와서, 조건에 맞게 l 앞의 원소들과 r 뒤의 원소들을 배열에 담아 리턴한다. 문제에는 리스트라고 써 있는데 리..
정수 리스트 num_list, 정수 n이 주어질 때 num_list를 n번째 원소 이후의 원소들과 n번째까지의 원소들로 나눠 n번째 원소 이후의 원소들을 n번째까지의 원소들 앞에 붙인 리스트를 리턴하는 함수를 완성하라 쉽게 말해 n 이상의 인덱스에 있는 값들을 그대로 0번 인덱스 앞에 갖다 붙이라는 뜻이다. 2번째 입출력 예를 보면 순서 변경 없이 그대로 0번 인덱스 앞에 붙인 걸 볼 수 있다. copyOfRange와 subList를 활용하면 풀 수 있다. class Solution { fun solution(numList: IntArray, n: Int): IntArray { val after = numList.copyOfRange(n, numList.size).toList() val before = ..
정수 리스트 num_list와 정수 n이 주어질 때, n번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 리턴하는 함수를 완성하라 n번째 원소~마지막 원소를 모두 가진 리스트를 만들면 되는데, copyOfRange()를 쓰면 단번에 해결된다. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/copy-of-range.html copyOfRange - Kotlin Programming Language kotlinlang.org 원본 배열의 지정된 범위의 복사본인 새 배열을 리턴한다 - fromIndex : 복사할 범위의 시작 부분(inclusive) - toIndex : 복사할 범위의 끝(exclusive) 리턴되는 배열은 시작값, ..
copyOfRange()를 쓰면 비교적 간단하게 풀 수 있다. class Solution { fun solution(arr: IntArray, query: IntArray): IntArray { var result = arr for (i in query.indices) { result = if (i % 2 == 0) { result.copyOfRange(0, query[i] + 1) } else { result.copyOfRange(query[i], result.size) } } return result } }
정수 배열 arr이 주어진다. 배열 안의 2가 모두 포함된 가장 작은 연속된 부분 배열을 리턴하는 함수를 완성하라. arr에 2가 없으면 -1을 리턴한다 2가 있는 첫 인덱스, 마지막 인덱스를 구하고 첫 2부터 마지막 2까지의 숫자들을 리턴하도록 작성해서 풀었다. class Solution { fun solution(arr: IntArray): IntArray { val first = arr.indexOfFirst { it == 2 } val last = arr.indexOfLast { it == 2 } return if (first != -1 && last != -1) { if (arr.slice(first..last).isEmpty()) { intArrayOf(-1) } else { arr.slice..
풀지 못해서 다른 사람의 풀이를 참고했다. class Solution { fun solution(arr: IntArray, intervals: Array): IntArray { val intList = ArrayList() for (i in intervals.indices) { for (j in intervals[i][0]..intervals[i][1]) { intList.add(arr[j]) } } return intList.stream().mapToInt { x: Int? -> x!! }.toArray() } }
정수 리스트 num_list가 주어질 때, 첫 번째로 나오는 음수의 인덱스를 리턴하는 solution 함수를 완성하라. 음수가 없다면 -1을 리턴한다 정수 리스트 안에서 음수를 찾아야 하기 때문에 find를 쓰고 조건을 0보다 작은 것으로 설정할 수 있다. 또한 음수가 없다면 -1을 리턴해야 하기 때문에 아래와 같이 작성할 수 있다. class Solution { fun solution(numList: IntArray): Int { return if (numList.find { it < 0 } != null) { numList.indexOf(numList.find { it < 0 }!!) } else { -1 } } }
n이 1~4인 경우를 when으로 구분해서 풀면 아래와 같다. class Solution { fun solution(n: Int, slicer: IntArray, num_list: IntArray): IntArray { val a = slicer[0] val b = slicer[1] val c = slicer[2] val answer: IntArray when (n) { 1 -> { answer = IntArray(b + 1) for (i in 0..b) { answer[i] = num_list[i] } } 2 -> { answer = IntArray(num_list.size - a) for (i in a until num_list.size) { answer[i - a] = num_list[i] } } ..
정수 배열 arr이 주어진다. arr의 원소는 1 또는 0이다. 정수 idx가 주어졌을 때 idx보다 크면서 배열의 값이 1인 가장 작은 인덱스를 찾아 리턴하는 함수를 완성하라. 단 그러한 인덱스가 없다면 -1을 리턴한다 구현 단계에서 막혀 풀지 못해 다른 사람의 풀이를 참고했다. class Solution { fun solution(arr: IntArray, idx: Int): Int { var answer = 0 for (i in arr.indices) { if (i >= idx && arr[i] == 1) { answer = i break } else { answer = -1 } } return answer } }