728x90
반응형
XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다.
class Solution {
fun solution(want: Array<String>, number: IntArray, discount: Array<String>): Int {
var answer: Int = 0
val numberArr = number.copyOf()
val wantMap = mutableMapOf<String, Int>()
for ((i, item) in want.withIndex()) {
wantMap[item] = i
}
for ((i, item) in discount.withIndex()) {
if (i >= 10) {
val minusItem = discount[i - 10]
val idx = wantMap[minusItem]
if (idx != null) numberArr[idx]++
}
val idx = wantMap[item] ?: continue
numberArr[idx]--
if (numberArr.filter { it > 0 }.isEmpty()) answer++
}
return answer
}
}
728x90
반응형
'Kotlin > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 모음 사전 - kotlin (0) | 2023.04.15 |
---|---|
[프로그래머스] 피로도 - kotlin (0) | 2023.04.14 |
[프로그래머스] 연속 부분 수열 합의 개수 - kotlin (0) | 2023.04.13 |
[프로그래머스] 귤 고르기 - kotlin (0) | 2023.04.11 |
[프로그래머스] 기사단원의 무기 - kotlin (0) | 2023.04.11 |