본문 바로가기
[개발] 코딩테스트/프로그래머스

[프로그래머스] 없는 숫자 더하기 / Javascript

by hmmmm_ 2022. 4. 15.

[문제 바로가기]

연습월간 코드 챌린지 시즌3 > 없는 숫자 더하기 (Lv.1)

 

[ 문제 파악 ]

핵심 : 배열에서 없는 수만 더해서 return 하기 !

 

[ 적용한 풀이 ]

1. 배열 자체가 가지는 index를 사용

2. indexOf(값)의 결과값이 0이하인 것만 answer에 더하기

function solution(numbers) {
    let answer = 0;

    for(let i = 0; i < 10; i++){
       if(numbers.sort().indexOf(i) < 0){ 
           answer +=i
       }
    }

    return answer
}

sort()가 필요한가 싶어서 적용했었는데, 풀이 제출할때 성능체크해보니 그렇게 큰 차이는 나지 않았다. 

(오히려 적용 안한 쪽이 균일하게 처리하는 것으로 보인다)

sort()적용 유무에 따른 성능차이 

[해결 과정 중 실수한 부분 / 잡담]

처음에 다른 array를 만들어서 index가 있는 값은 1을 주고, 없으면 0을 주는 방식으로 해볼까 했는데

조금 적다보니 굳이 이렇게 안하고 바로 answer에 더해주면 되잖아! 하고 방향을 수정했다.

 

다른 사람 풀이에서 reduce를 이용한 풀이가 있었는데

그 풀이를 참고하고 MDN 문서를 다시 읽어보니

reduce에 대해서 조금 더 잘 이해할 수 있게 되었다. 

댓글