IT Studying

프로그래머스 완주하지 못한 선수 본문

코딩테스트/프로그래머스

프로그래머스 완주하지 못한 선수

IT wiz 2023. 5. 27. 12:20
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

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

programmers.co.kr

def solution(participant, completion):
    dict_part = {}
    dict_comp = {}
    for i in participant:
        if i in dict_part:
            dict_part[i] += 1
        else:
            dict_part[i] = 1
    for i in completion:
        if i in dict_comp:
            dict_comp[i] += 1
        else:
            dict_comp[i] = 1
    for key, value in dict_part.items():
        try:
            if dict_comp[key] != value:
                return key
        except:
            return key

처음에는 리스트를 이용해서 완주한 선수들 리스트를 돌면서 참가 선수 리스트의 선수들을 빼고, 마지막 남은 사람을 return하는 코드를 짯다. 근데, 시간 복잡도가 사실 어마어마하다. 그래서 딕셔너리는 해시를 통해 바로바로 접근이 가능하므로 딕셔너리로 바꾸어서 두 딕셔너리를 비교하는 코드를 짜봤다. 특별한 메소드 이용하지 않고도 충분히 풀 수 있는 문제였다!

반응형

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

배열의 길이를 2의 거듭제곱으로 만들기  (0) 2023.05.13
옹알이(1)  (0) 2023.02.20
Comments