프로그래머스 Lv.1 크레인 인형뽑기 게임
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | function solution(board, moves) { let answer = 0; let doll = []; // 바구니에 옮겨 담음 for(let i = 0; i < moves.length; i++) { for(let j = 0; j < board.length; j++) { if(board[j][moves[i]-1] === 0) continue; else { doll.push(board[j][moves[i]-1]); board[j][moves[i]-1] = 0; break; } } } // 붙어있는 같은 인형 제거 for(let i = 0; i < doll.length-1; i++) { if(doll[i] === doll[i+1]) { doll.splice(i, 2); i -= 2; answer += 2; } } return answer; } | cs |
이중반복문을 바깥쪽 반복문을
i
가 0부터moves
의 길이까지, 안쪽 반복문을j
가 0부터board
의 길이까지 반복한다.만약
board[j][moves[i]-1
가 0이라면 그냥 넘어가고, 0이 아니라면 배열doll
에board[j][moves[i]-1
을push
해준다.
그리고board[j][moves[i]-1
은 인형을 뺀 상태이므로 0을 할당해주고, 안쪽 반복문을 종료시킨다.뽑은 인형을 할당해 둔 배열
doll
에서 같은 종류의 붙어있는 인형을 제거해준다.반복문을
i
가 0부터doll
길이의 -1 까지 반복한다.만약
doll[i]
와doll[i+1]
이 같다면splice
를 사용해서i
와i+1
번째 인형을 제거한다.그리고
answer
에 제거한 인형의 숫자 2를 더해준다.