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

김지원·2021년 8월 25일
0

coding-test

목록 보기
8/25
post-thumbnail

📖 문제 링크

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

📃 문제 설명

해시와 관련된 문제다.

마라톤 선수들이 참여하는데 단 한 명이 완주하지 못했다.
완주한 선수와 참여 선수가 배열로 주어졌을 때 완주하지 못한 한 선수를 찾아내라는 문제이다.

📃 조건

  • 참가자 중에는 동명이인이 존재할 수 있다.

👨‍💻 문제 풀이

python

def solution(participants, completions):
    names = {}
        
    for participant in participants:
        if participant in names:
            names[participant] += 1
        else:
            names[participant] = 1
    
    for completion in completions:   
        names[completion] -= 1
        
             
    for player in participants:
        if names[player] > 0:
            return player
  1. 빈 딕셔너리를 만들고 참가자들을 키로 한 다음
    이미 존재한다면 +1 없다면 1을 추가하여 딕셔너리를 채웠다.
  2. 그리고 완주자들을 -1하여 마지막 남은 사람을 출력하였다.

javascript

function solution(participant, completion) {
    const obj = {};
    for (let player of participant) {
        if (obj[player]) {
            obj[player] += 1;
        }else {
            obj[player] = 1;
        }
    }
    for (let finisher of completion) {
        if (obj[finisher]) {
            obj[finisher] -= 1;
        }
    }
    for (let player of participant) {
        if (obj[player] >= 1) {
            return player;
        }
    }
}

js에서도 똑같이 풀었다!

2021.08.25

profile
backend-developer

0개의 댓글