이노베이션 캠프/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