본문 바로가기

공부/알고리즘

Codility - Lesson 3 : PermMissingElem

  아직까진 쉬운 문제들이 나오고 있다.

  parameter로 입력받는 배열 A는 N개의 자연수로 이루어진 배열이고, A에 들어가는 숫자들은 1 ~ N + 1의 범위에 속하는 임의의 자연수들이며, 각 정수는 고유한 값을 가진다. 이 때 1 ~ N + 1에 해당하는 자연수들 중 어떤 자연수 하나만 A에 포함되지 않는데, 그 자연수를 찾는 문제이다.

 

  나는 Set이나 Map을 사용하는걸 좋아하는 편이라 이번에도 그렇게 문제를 풀었다.

 

function solution(A) {
    const set = new Set(
        Array.from({ lengthA.length + 1 }, (_i=> i + 1)
    ); // 1 부터 (A의 길이 + 1) 만큼의 자연수들을 갖는 Set을 생성 

    // A에 속한 숫자를 for로 돌리면서 set에서 그 숫자를 제거 
    A.forEach(num => set.delete(num));

    // 유일하게 남은 숫자를 return
    return [...set.keys()][0];
}

 

  결과