본문 바로가기

알고리즘/프로그래머스

[Lv.1] Hash - 완주하지 못한 선수

https://github.com/ohjeongmin/Programmers_Algorithm/tree/main/src/javascript/hash

 

GitHub - ohjeongmin/Programmers_Algorithm

Contribute to ohjeongmin/Programmers_Algorithm development by creating an account on GitHub.

github.com

 

나의 풀이

function solution(p, c) {
    p.sort()
    c.sort()
    
    while(p.length) {
        let pVal = p.pop()
        if(pVal !== c.pop()) return pVal
    }
}

 

풀이 이유

 

1. 중복값이 있을 경우

중복값이 있을 경우, 앞 인덱스보다 뒷 인덱스로 접근하는것이 값이 더 빠르게 찾아지기 때문이다.

 

2. pop 사용하기

pop을 사용한 이유는 다음과 같다.

pop은 맨 뒤의 값을 반환하며 동시에 배열에서 해당 값을 제거한다.

즉, while문을 한번 돌때마다 배열의 길이가 1씩 줄어든다는것.

때문에 로직이 돌때마다 탐색해야하는 배열의 길이가 줄어든다.