https://school.programmers.co.kr/learn/courses/30/lessons/131127?language=python3
def solution(want, number, discount):
wantMap = {}
for (i, w) in enumerate(want):
wantMap[w] = number[i]
for i in discount[0:10]:
if i in want:
wantMap[i] -= 1
result = 0
for i in range(10, len(discount)+10):
if all(x <= 0 for x in wantMap.values()):
result += 1
if i < len(discount) and discount[i] in wantMap:
wantMap[discount[i]] -= 1
if discount[i-10] in wantMap:
wantMap[discount[i-10]] += 1
return result
func solution(_ want:[String], _ number:[Int], _ discount:[String]) -> Int {
var map = [String:Int]()
for (i, w) in want.enumerated() {
map[w] = number[i]
}
for i in discount[0..<10] {
if map[i] != nil {
map[i]! -= 1
}
}
var result = 0
for i in 10..<discount.count+10{
//가입 가능 날짜인지 점검
if map.allSatisfy({ $0.value <= 0 }) {
result += 1
}
//날짜 슬라이딩 윈도우
if i < discount.count && map[discount[i]] != nil {
map[discount[i]]! -= 1
}
if map[discount[i-10]] != nil {
map[discount[i-10]]! += 1
}
}
return result
}
[프로그래머스] 피로도 (0) | 2023.12.20 |
---|---|
[프로그래머스] 프로세스 (1) | 2023.12.20 |
[프로그래머스] H-Index (0) | 2023.12.18 |
[프로그래머스] n^2 배열 자르기 (1) | 2023.12.15 |
[프로그래머스] 괄호 회전하기 (0) | 2023.12.15 |