728x90
풀이
class 귤고르기 {
fun solution(k: Int, tangerine: IntArray): Int {
var answer: Int = 0
var tmpK = k
/**
* 알고리즘 아이디어
* - 최소한의 갯수로 귤을 넘겨줘야 된다면 제일 많은 귤의 갯수부터 소진시키자.
*
* 설명
* - 귤의 크기에 맞게끔 Map 자료구조로 변형
* - 귤의 갯수로 치환한뒤
* - 크기의 역순으로 정렬한다.
*
* 부연설명
* - kotlin 은 다양한 변형함수를 제공함으로 적절히 사용하면 되겠다.(sorted().reversed() = sortedDescended())
* - 아래 경우에서는 정렬전에 size 로 transformation(map) 하는 과정이 더 빠르겠다 싶었다.
* */
// val obj1 = tangerine
// .groupBy { it }
// .values.sortedBy { it.size }.reversed()
// .map { it.size }
val obj1 = tangerine
.groupBy { it }
.values
.map { it.size }
.sortedDescending()
for((eleIndex, ele) in obj1.withIndex()){
tmpK -= ele
if(tmpK <= 0){
answer = eleIndex + 1
break
}
}
return answer
}
}
출처
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이(github)
GitHub - sggnology/programmers-algorithm: 프로그래머스 알고리즘 코드 정리입니다.
프로그래머스 알고리즘 코드 정리입니다. Contribute to sggnology/programmers-algorithm development by creating an account on GitHub.
github.com
728x90
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 :: 연습문제 :: 혼자 놀기의 달인 (0) | 2022.12.12 |
---|---|
프로그래머스 :: 연습문제 :: 점찍기 (0) | 2022.12.05 |
프로그래머스 :: 연습문제 :: 연속 부분 수열 합의 개수 (0) | 2022.11.18 |
프로그래머스 :: 연습문제 :: 숫자 카드 나누기 (0) | 2022.11.11 |
Programmers :: 연습문제 :: 우박수열 정적분 (0) | 2022.11.07 |