정렬을 해서 인덱스가 0인 요소를 제거하면 순서가 바껴서 그대로 반환할 수 없다.
풀이 실패
요소를 제거하기 위해 array가 아닌 다른 컬렉션으로 바꾼 뒤 제거하고 다시 array로 반환해야 한단다.
다른 사람 풀이
class Solution {
fun solution(arr: IntArray): IntArray {
var answer = intArrayOf()
var arrs = arr.toMutableList() // MutableList 로 변환
arrs.remove(arrs.minOrNull()) // minOrNull()로 최솟값 제거
answer = arrs.toIntArray() // 다시 IntArray 로 변환
if(arrs.size == 0) answer = intArrayOf(-1) // 빈 배열일 경우
return answer
}
}
전혀 못 풀어서 속상하다...당연히 제출도 안했다...이런건 체크해두고 꼭 다시 풀기 🫡
12/30
특정요소를 제거해야한다
배열이 아닌 변경가능한 리스트로 바꿔서 제거하자
maxOrNull / minOrNull
요소가 있으면 최대값/최소값, 없으면 null 반환
maxBy / minBy { it. }
최대값과 최소값으로 나온 요소에 대한 it에 대한 식의 결과
컬렉션의 확장함수 끝이 없구나
01.23
다른 사람 풀이
class Solution {
fun solution(arr: IntArray): IntArray = if(arr.size == 1) arrayOf(-1).toIntArray()
else arr.filter { it != arr.min() }.toIntArray()
}
요소가 하나뿐이라면 -1을 가지고 있는 배열을 반환하고
아니라면 filter 조건을 이용해 arr 의 최솟값이 아닌 경우만 걸러내서 배열로 반환한다.
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 삼총사 | Kotlin (0) | 2024.01.25 |
---|---|
프로그래머스 | 최대공약수와 최대공배수 | Kotlin | 다시풀기 (1) | 2024.01.24 |
프로그래머스 | 3진법 뒤집기 | Kotlin (0) | 2024.01.19 |
프로그래머스 | 이상한 문자 만들기 | Kotlin | 다시풀기 (0) | 2024.01.18 |
프로그래머스 | 행렬의 덧셈 | Kotlin | 다시풀기++ (0) | 2024.01.16 |