https://school.programmers.co.kr/learn/courses/30/lessons/132265
set 함수를 통해 중복을 제거하면서 비교하여 답을 구했지만, 시간초과를 출력하였습니다.
def solution(topping):
answer = 0
for i in range(1, len(topping)-2):
A = set(topping[:i])
B = set(topping[i:])
if len(A) == len(B):
answer += 1
return answer
해결 방법으로 dict에 저장 후 비교하여 답을 구했습니다.
from collections import defaultdict
def solution(topping):
answer = 0
A = defaultdict(int)
B = defaultdict(int)
for top in topping:
A[top] += 1
for top in topping[::-1]:
A[top] -= 1
if A[top] == 0:
del(A[top])
B[top] += 1
if len(A) == len(B):
answer += 1
return answer
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] / [Level 2] / [Python] 점찍기 (0) | 2023.01.26 |
---|---|
[프로그래머스] / [Level 2] / [Python] 택배상자 (0) | 2023.01.25 |
[프로그래머스] / [Level 2] / [Python] 할인 행사 (0) | 2023.01.21 |
[프로그래머스] / [Level 2] / [Python] 연속 부분 수열 합의 개수 (0) | 2023.01.20 |
[프로그래머스] / [Level 2] / [Python] 귤 고르기 (0) | 2023.01.19 |