알고리즘 문제

알고리즘 문제 js 20-완주하지 못한 선수

<zinny/> 2022. 1. 19. 10:04
728x90

내가 쓴 코드 

function solution(participant, completion) {
    participant.sort(); //정렬~~~~
    completion.sort();
    for (let i =0; i<participant.length; i++){
        if(participant[i] !==completion[i]){
            return participant[i]
        }
    }
}

 

참가자와 완주자를 이름 순으로 정렬해서 같은 이름이 없으면 리턴해줘~


다른 코드 

var solution=(_,$)=>_.find(_=>!$[_]--,$.map(_=>$[_]=($[_]|0)+1))

var solution=(participant,completion)=>participant.find(name=>!completion[name]--,completion.map(name=>completion[name]=(completion[name]|0)+1))

→ 완주자 배열을 {이름:완주자배열에 등장하는 횟수}로 맵핑하고, 그 맵에 참가자 이름 하나씩 넣어서 찾아볼때마다 횟수 떨어뜨려서 횟수 0나오는 놈 찾아뱉는 함수

 

const solution = (p, c) => {
    p.sort()
    c.sort()
    while (p.length) {
        let pp = p.pop()
        if (pp !== c.pop()) return pp
    }
}

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/pop

pop() 메서드는 배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.

728x90