프로그래머스

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

진철 2023. 2. 6. 23:50
728x90
반응형

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

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

programmers.co.kr

코드를 작성하기 위한 순서는 다음과 같다.

1. 인원이 100000명 이하이기 때문에 이중 for문을 사용하여 비교할 경우, 런타임 에러가 발생한다. 따라서 해쉬 자료구조를 사용하기 위해서 참가자 수에 따른 딕셔너리를 만들어준다.

2. 완주자에 따라서 각 참가자 value 값에 -1을 해준다.

3. 참가자의 value 값이 0이 아닌 경우, 완주자 목록에 없는 경우이므로 answer에 대입해준다.

def solution(participant, completion):
    answer = ''
    p={}
    for i in participant: #1번
        if i not in p:
            p[i]=1
        else:
            p[i]+=1
    for i in completion: #2번
        if i in p:
            p[i]-=1
    for i in p:
        if p[i]!=0: #3번
            answer+=i
            return answer

해쉬 자료구조를 통해서 간단하게 해결할 수 있는 문제였다.

혹시나 싶어서 이중 for문을 사용하여 비교했더니 런타임 에러가 발생하는 것을 확인할 수 있었다.

(문제를 풀 때, 문제 카테고리를 살펴보는 것도 좋은 방법일 듯하네요 !)

728x90
반응형