zip을 이용해서 list를 묶을수있어서 같은값 찾을때 list를 정렬해주고 값을 묶은 후 비교해주면 O(n)으로 풀 수있다.
def solution(participant, completion): par = sorted(participant) com = sorted(completion) for p,c in zip(par, com): if p!=c: print(p) return p return par[-1]
소스의 출처는 프로그래머스입니다.
collections.Counter를 이용하여 리스트 안의 원소가 몇개씩 들어있는지 확인 할 수 있고 collection.Counter는 -연산이 가능하다.(파이썬에서 객체끼리 -가 가능한건가?)import collections def solution(participant, completion): answer = collections.Counter(participant) - collections.Counter(completion) return list(answer.keys())[0]