> [Middler] 할인행사
https://school.programmers.co.kr/learn/courses/30/lessons/131127
문제 풀이 과정
우선 할인행사해서 원하는 항목 물품을 모두 살 수 있는지를 체크해야 한다. 즉, 회원가입 날로부터 10일 연속으로 필요한 항목물품을 모두 할인 받아 구매할 수 있는지를 확인한다.
문제 풀이
python
def solution(want, number, discount):
total = sum(number)
ans = 0
for i, d in enumerate(discount) :
want_number = { v : number[k] for k, v in enumerate(want) }
for j in discount[i:total+i] :
if want_number.get(j) :
want_number[j] -= 1
if sum([v for k,v in want_number.items()]) == 0:
ans += 1
return ans
시간복잡도 O(NM)
회고 및 느낀점
문제의 결과값은 할인받아서 모두 구매할 수 있는 총 일수이다. 그래서 처음에 한번 틀렸당.. 무조건 문제를 꼼꼼히 읽자!
'TIL' 카테고리의 다른 글
99클럽 TIL (240819) (0) | 2024.08.19 |
---|---|
99클럽 TIL (240818) (0) | 2024.08.18 |
99클럽 TIL (240816) (0) | 2024.08.16 |
99클럽 TIL (240815) (0) | 2024.08.15 |
99클럽 TIL (240814) (0) | 2024.08.14 |