Header Banner
Kakao Logo

TECH.KAKAO.GG

기술 자료/Algorithm/프로그래머스 무작위로 K개의 수 뽑기

프로그래머스 무작위로 K개의 수 뽑기

Algorithm26일 전

🧩 문제 설명

당신은 중복되지 않는 k개의 숫자를 무작위로 뽑아서 배열을 만들고자 합니다.
하지만 무작위 숫자들이 이미 arr 배열에 순서대로 저장되어 있다고 가정합니다.

목표arr에서 앞에서부터 순서대로 중복되지 않는 숫자를 뽑아 k개의 배열을 만드는 것입니다.
단, 서로 다른 숫자가 k개보다 적을 경우에는 부족한 칸을 -1로 채워야 합니다.

 

🔑 핵심 아이디어

  • 중복된 숫자는 무시하고, 처음 등장하는 숫자만 뽑습니다.

  • 뽑은 숫자의 개수가 k에 도달하면 종료합니다.

  • 만약 k개보다 적다면, 남은 칸에 -1을 채워넣습니다.

 

function solution(arr, k) {
    var answer = [];
    
    let tmp = new Set();
    
    for(let num of arr) {
        if(!tmp.has(num)) {
            tmp.add(num);
            answer.push(num);
        }
        if (answer.length === k) break;
    }
    
    while(answer.length < k) {
        answer.push(-1);
    }
    
    return answer;
}

키워드

프로그래머스 무작위로 K개의 수 뽑기무작위로 K개의 수 뽑기JS 중복 제거JS 길이 제한 배열 구성JS 순차 처리