๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Javascript] ํฌ๋ ˆ์ธ ์ธํ˜•๋ฝ‘๊ธฐ (64061)

๋ฌธ์ œ๋งํฌ

 

์ ‘๊ทผ ๋ฐฉ๋ฒ•

์ฒ˜์Œ์—๋Š” moves.forEach((el) =>  board.map((arr) => arr[el-1])) ์ฝ”๋“œ๊ฐ€ ์ธํ˜•๋ฝ‘๊ธฐ์˜ ์ง„ํ–‰์„ ๋ชจ๋‘ ๊ฐ€์ ธ์™€์„œ ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฝ‘ํžŒ ์ธํ˜•์˜ ๊ฐ’์„ 0์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ ๋”ฐ๋กœ ์ธํ˜• ๋ฝ‘๊ธฐ ํ–‰๋™์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์„œ 
๋ฌธ์ œ์— ์ ‘๊ทผํ•˜์˜€๋‹ค.

1. moves์˜ ์ˆซ์ž๋ฅผ ๋ฐ›์•„์™€ corwMachin ํ•จ์ˆ˜์˜ board์—์„œ ํ•ด๋‹น ์—ด์˜ ๊ฐ’์ด 0์ด ์•„๋‹ˆ๋ฉด ์ธํ˜•์˜ ๊ฐ’(doll)์— ์ถ”๊ฐ€ ํ•˜๊ณ  returnํ•œ๋‹ค.

2. ๋ฐ›์•„์˜จ doll์„ basket์— ๋‹ด๊ณ  ๋งŒ์•ฝ ๋งˆ์ง€๋ง‰์— ๋‹ด์€ doll๊ณผ ํ˜„์žฌ์˜ doll์ด ๊ฐ™์œผ๋ฉด basket์— ๋‹ด๊ฒจ ์žˆ๋Š” doll์„ popํ•œ๋‹ค.

3. pop์„ ํ• ๋•Œ ์ธํ˜•์ด 2๊ฐœ ์‚ฌ๋ผ์ง„ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ๊ฒฐ๊ณผ๊ฐ’์— answer += 2๋ฅผ ํ•œ๋‹ค.


 

 

function solution(board, moves) {
    var answer = 0;
    const basket = [];
    
    moves.forEach((it) => {
        const doll = crowMachin(board,it-1);
        if(doll){
            if(basket[basket.length - 1] === doll){
                basket.pop();
                answer += 2;
            }else{
                basket.push(doll)
            }   
        }
    })
    
    return answer;
}

const crowMachin = (board, col) => {
    for (let i = 0; i<board.length; i++){
        if (board[i][col] !== 0){
            const doll = board[i][col];
            board[i][col] = 0;
            return doll;
        }
    }
}