[프로그래머스] Lv.1 크레인 인형뽑기 게임

Miro·2022년 8월 12일
0
post-thumbnail

프로그래머스 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=== 0continue;
            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이 아니라면 배열 dollboard[j][moves[i]-1push 해준다.
그리고 board[j][moves[i]-1은 인형을 뺀 상태이므로 0을 할당해주고, 안쪽 반복문을 종료시킨다.

뽑은 인형을 할당해 둔 배열 doll에서 같은 종류의 붙어있는 인형을 제거해준다.

반복문을 i가 0부터 doll 길이의 -1 까지 반복한다.

만약 doll[i]doll[i+1]이 같다면 splice를 사용해서 ii+1번째 인형을 제거한다.

그리고 answer에 제거한 인형의 숫자 2를 더해준다.

profile
프론트엔드 개발자(진)

0개의 댓글