[프로그래머스] 가까운 수

Sdoubleu·2023년 4월 10일
0

프로그래머스

목록 보기
20/34
post-thumbnail

문제


내가 쓴 풀이

주어진 배열과 비교할 수의 차를 새 배열에 절댓값으로 대입한다
절댓값이 가장 작은 인덱스를 구해서 리턴하면 되는 줄 알았으나
(10, 11, 14, 12) 가 주어질 경우
비교할 n이랑 가장 가까운 수는 12, 14인데 현재 인덱스 상에선 14가 먼저 나오게 되므로 14를 출력하게 됐다
그래서 정렬해서 집어넣고 정렬해서 그 인덱스를 찾으면 된다 라고 생각을 했다

class Solution {
    fun solution(array: IntArray, n: Int): Int {
    val mut = mutableListOf<Int>()
    for(i in array.sorted()) mut.add(Math.abs(n-i))
        return array.sorted()[mut.indexOf(mut.sorted().first())]
    }
}

속도는 조금 느리게 나왔다 ..


다른 사람 풀이

class Solution {
    fun solution(array: IntArray, n: Int) =
    array.sorted().minWithOrNull(compareBy { Math.abs(it - n) })!!
}

maxWithOrNull()과 minWithOrNull()은 Comparator 객체를 받아서 최댓값 또는 최솟값을 찾는다. 컬렉션이 비어 있다면 null을 반환한다


📌참고자료

Collection 확장 함수

profile
개발자희망자

0개의 댓글