-
[JS] 크레인 인형뽑기 게임이노베이션 캠프/3주차_알고리즘 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