새소식

⌨️ Algorithms/프로그래머스

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

2022. 12. 23. 21:47

  • -

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

 

프로그래머스

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

programmers.co.kr

 

  • 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주
  • participant: 마라톤에 참여한 선수들의 이름이 담긴 배열
  • completion: 완주한 선수들의 이름이 담긴 배열
  • 완주하지 못한 선수의 이름을 return

제한사항

  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하
  • completion의 길이는 participant의 길이보다 1 작음
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있음
  • 참가자 중에는 동명이인이 있을 수 있음

 

"""
입출력 예시)

participant = ["leo", "kiki", "eden"], completion = ["eden", "kiki"] -> "leo"
participant = ["marina", "josipa", "nikola", "vinko", "filipa"], completion = ["josipa", "filipa", "marina", "nikola"] -> "vinko"
participant = ["mislav", "stanko", "mislav", "ana"], completion = ["stanko", "ana", "mislav"] -> "mislav"
"""

 

# 참여자 명단에는 있지만 완주자 명단에는 없는 이름 찾기

 

 

첫 번째 시도

participant에는 있는데 completion에는 없는 이름 -> not in

def solution(participant, completion):
    answer = ''
    for i in range(len(participant)):
        if participant[i] not in completion:
            answer = participant[i]

    return answer

-> 동명이인이 있는 경우 답을 못 찾음

 

 

통과한 코드

 

from collections import Counter
def solution(participant, completion):
    answer = ''
    answer = Counter(participant) - Counter(completion)
    return list(answer.keys())[0]

-> Counter() 이용

 

 

 

cf) 이전에 작성했던 코드

 

https://monzheld.tistory.com/59

 

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

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는

monzheld.tistory.com

 

 

 

참고) 

 

https://coding-grandpa.tistory.com/85

 

[프로그래머스] 완주하지 못한 선수 문제 풀이(해시 Lv. 1) - 파이썬 Python

0. 동일 유형 문제 [프로그래머스] 완주하지 못한 선수 (해시 Lv. 1) [프로그래머스] 전화번호 목록 (해시 Lv. 2) [프로그래머스] 위장 (해시 Lv. 2) [프로그래머스] 베스트 앨범 (해시 Lv. 3) Youtube 영상으

coding-grandpa.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!