https://programmers.co.kr/learn/courses/30/lessons/42576?language=python3
그냥 리스트 쓰려고 했는데
효율성 틀림
def solution(participant, completion):
for i in completion:
participant.remove(i);
return ''.join(participant)
해시 문제니까 딕셔너리를 써보려고욧
def solution(participant, completion):
no_dict = dict()
for i in participant:
if i not in no_dict:
no_dict[i] = 1
else:
no_dict[i] += 1 # 동명이인 때문에..
for i in completion:
if i in no_dict:
no_dict[i] -= 1
return ''.join(x for x in no_dict if no_dict[x] > 0)
딕셔너리가 효율성이 좋긴 하다~
남의 풀이
음 collections 모듈의 Counter라는 함수를 이용하면 단어에 포함된 글자수와 딕셔너리를 만들어준다.
리스트에 저걸 사용하면 그 단어 자체와 딕셔너리를 만들어준다.
counter로 만든 딕셔너리끼리는 빼기(-)를 진행할 수 있어서 value와 잘 빼서..0이면 없애주는구나...신기하다.
더하기, 빼기, 교집합, 합집합 등의 기능을 사용할 수 있다고 한다.
아 완주 못한넘이 1명이니까 그냥 sort() 해서 안맞는넘 출력해주면 된다. 흑흑.......
완주 못한넘이 맨 뒤에 있으면 맨 마지막 넘을 출력함. 저거는 음~ participant[-1] 일케 써도 된다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 입국심사 for Java (0) | 2022.09.18 |
---|---|
[프로그래머스] 모의고사 for Python (0) | 2022.04.09 |
[프로그래머스] 소수 만들기 for Python (0) | 2022.03.19 |
[프로그래머스] 신고 결과 받기 for Python (0) | 2022.03.17 |
[프로그래머스] 크레인 인형뽑기 게임 for Python (0) | 2022.03.15 |