이노베이션 캠프/3주차_알고리즘

[JS] 크레인 인형뽑기 게임

hani:) 2023. 6. 21. 14:37

문제

https://school.programmers.co.kr/learn/courses/30/lessons/64061

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이

function pickDoll(arr, index) { // 인형 꺼내주는 함수
    let val = 0; // 1) 인형 정보 저장할 변수
    
    // 2) for문 사용하여 배열의 모든 요소에 접근
    for (let i=0; i<arr.length; i++) {
        let v = arr[i][index];
        if (v !== 0) { // 2-1) 인형이 0이 아닌 경우 val 변수에 값 저장한 후 배열에는 0으로 저장
            val = v;
            arr[i][index] = 0;
            break;
        }
    }
    return val;
}

function solution(board, moves) {     
    let result = []; // 1) 결과 값 저장할 변수
    let len = 0;     // 2) 삭제한 인형 수 저장한 변수 
    
    // 3) for문 사용하여 배열의 모든 요소에 접근
    for (let i=0; i<moves.length; i++) {
        let val = pickDoll(board, moves[i] - 1); // 3-1) 꺼내온 인형 정보
        if (val !== 0) result.push(val); 		// 3-2) 0이 아닌 경우 push
        
        j = 0;
        // 4) 중복 제거 로직 (중복된 값이 없을 때까지 반복)
        while(j < result.length) {
            if (result[j-1] === result[j]){ // 4-1) 현재 값과 이전 값이 동일한 경우 제거
                result.splice(-2);;
                len+=2;
            }
            j++;      
        }
    }
    return len;
}

 

 

728x90