코딩테스트/python

[python][프로그래머스_lv1] 완주하지 못한 선수 (feat. 해시테이블)

허니비 honeybee 2023. 3. 16. 01:26

 

 

 

왕바보같은 첫 코드

 

그냥 문제 보고 차집합인 줄 알았음 

def solution(participant, completion):
    
    str_list = [x for x in participant if x not in completion]
    answer = str_list
    
    return answer

 

 

그랬더니 테스트케이스 3번에서 걸리더라 

 

 

 

 

ㅇㅎ 그래 맞아 동명이인이 있을 수 있지 

 

 

하고 예전 문제들 뒤적거리다 생각난게 파이썬 집합 패키지.. Counter 가 있었다 

 

Counter 는 이렇게 쓰는 애다 

 

from collections import Counter

#중복이 있는 리스트를 만듬 
fruits = ['apple', 'banana', 'orange', 'apple', 'banana', 'apple']
#카운더에 담음 
fruit_count = Counter(fruits)

#dict 형태로 나옴 (해시)
print(fruit_count)
# Output: Counter({'apple': 3, 'banana': 2, 'orange': 1})

#kye 느낌으로 접근 가능.. 개수세어줌 
print(fruit_count['apple'])
# Output: 3

print(fruit_count.most_common(2))
# Output: [('apple', 3), ('banana', 2)]

 

 

 

여튼 그거 써서 풀면 사칙 연산이 아주 이지 ~ 

 

 

from collections import Counter

def solution(participant, completion):
    
    c1, c2 = Counter(participant), Counter(completion)
    answer = list(c1 - c2)[0]
    
    return answer

 

 

 

 

728x90