728x90
반응형
문제 설명
철수는 롤케이크를 두 조각으로 잘라서 동생과 한 조각씩 나눠 먹으려고 합니다. 이 롤케이크에는 여러가지 토핑들이 일렬로 올려져 있습니다. 철수와 동생은 롤케이크를 공평하게 나눠먹으려 하는데, 그들은 롤케이크의 크기보다 롤케이크 위에 올려진 토핑들의 종류에 더 관심이 많습니다. 그래서 잘린 조각들의 크기와 올려진 토핑의 개수에 상관없이 각 조각에 동일한 가짓수의 토핑이 올라가면 공평하게 롤케이크가 나누어진 것으로 생각합니다.
class Solution {
fun solution(topping: IntArray): Int {
var answer: Int = 0
val leftMap = mutableMapOf<Int, Int>()
val rightMap = mutableMapOf<Int, Int>()
for (i in topping) {
rightMap[i] = rightMap.getOrDefault(i, 0) + 1
}
var cnt: Int = 0
var anotherCnt: Int = rightMap.count()
for (i in topping) {
if (leftMap[i] == null) {
if (answer > 0) break
cnt++
leftMap[i] = 1
}
rightMap[i] = rightMap[i]!! - 1
if (rightMap[i] == 0) anotherCnt--
if (cnt == anotherCnt) answer++
}
return answer
}
}
728x90
반응형
'Kotlin > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 삼각 달팽이 - kotlin (0) | 2023.04.25 |
---|---|
[프로그래머스] 큰 수 만들기 - kotlin (0) | 2023.04.24 |
[프로그래머스] 쿼드압축 후 개수 세기 - kotlin (0) | 2023.04.22 |
[프로그래머스] 소수 찾기 - kotlin (0) | 2023.04.21 |
[프로그래머스] 숫자 변환하기 - kotlin (0) | 2023.04.21 |