programmers.co.kr/learn/courses/30/lessons/42576
1.
participant = ["mislav", "stanko", "mislav", "ana"]
completion = ["stanko", "ana", "mislav"]
def solution(participant, completion):
for i in participant:
if i not in completion:
print(i)
return i
else:
completion.remove(i)
답은 맞지만 효율성테스트에서 시간초과 떠버림
리스트 삭제는 n이란다..
2.
import collections
def solution(participant, completion):
answer=collections.Counter(participant)-collections.Counter(completion)
return list(answer)[0]
찾아보니 collections 라는 모듈이 있다.
collections.Counter() 를 사용하였다. Counter는 해시 가능한 객체를 세는데 사용하는 딕셔너리 서브 클레스이다.
list가 participant = ["mislav", "stanko", "mislav", "ana"] 있다고 할 때
collections.Counter(participant)를 하면 Counter({'mislav': 2, 'stanko': 1, 'ana': 1}) 가 된다.
다른 completion = ["stanko", "ana", "mislav"] 로 collections.Counter(completion)를 하면
Counter({'mislav': 1, 'stanko': 1, 'ana': 1}) 이 되는데 이 둘을 빼주면 Counter({'mislav': 1}) 가 된다.
mislav 라는 값만 나타내기 위해 list() 로 만들어 주었고 [0]을하여 mislav만 출력되게 하였다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[Level1] 두 개 뽑아서 더하기 (0) | 2021.04.06 |
---|---|
[Level1] 크레인 인형뽑기 게임 (0) | 2021.04.05 |
[Level1]K번째 수 (0) | 2021.03.31 |
[Level1] 2016년 (0) | 2021.03.31 |
[Level1] 가운데 글자 가져오기[Level1] 가운데 글자 가져오기 (0) | 2021.03.31 |