https://school.programmers.co.kr/learn/courses/30/lessons/132265?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


내 풀이

from collections import defaultdict

def solution(topping):
    Top = defaultdict(int)
    for i in topping:
        Top[i] +=1
        
    Top_set=set()
    count=0
    for i in topping:
        Top[i] -=1
        Top_set.add(i)
        if Top[i] ==0:
            Top.pop(i)
        if len(Top) == len(Top_set):
            count +=1
    return count

 


defaultdict를 이용해서 있는거 추가해주고 어떤 key의 VALUE값이 0 이면 없애준다.

 


다른사람의 풀이

from collections import Counter

def solution(topping):
    Top = Counter(topping)
    count=0
    Top_set=set()
    for i in topping:
        Top[i] -=1
        Top_set.add(i)
        if Top[i] ==0:
            Top.pop(i)
        if len(Top) == len(Top_set):
            count +=1
    return count

 


이게 더 나은 코드같다. 다 똑같은데 counter를 쓰면 편하게 셀 수 있다!


 

'취준 > 프로그래머스' 카테고리의 다른 글

택배상자 - 파이썬  (0) 2022.11.03
2개 이하로 다른 비트 - 파이썬  (0) 2022.10.17
파일명 정렬 - 프로그래머스  (0) 2022.10.11
n^2 배열 자르기 - 파이썬  (0) 2022.10.11
방문 길이 - 파이썬  (1) 2022.10.05

+ Recent posts