function solution(board, moves) {
//인형을 담을 바구니
let bascket = [];
let answer = 0;
for(let i = 0; i < moves.length; i++) {
//moves에 담긴 값은 1부터 시작이고 index는 0부터 시작하므로 -1을 해줌
const move = moves[i] - 1;
for(let j = 0; j < board.length; j++) {
//열(move)값은 고정이므로 행(j)값을 반복으로 돌면서 인형이 있으면 관련 코드 실행
const doll = board[j][move];
if(doll) {
//인형이 있는 자리에 0을 대입하여 인형을 꺼내준다.
board[j][move] = 0;
//만약 basket이 비어있지 않고 &&
//바스켓에 마지막으로 담긴 인형과 현재 꺼낸 인형이 일치할 경우
if(bascket.length !== 0 && bascket[bascket.length-1] === doll) {
//바스켓에서 마지막 인형을 꺼내주고
bascket.pop();
//answer값은 2를 올려준다.
answer += 2;
} else {
//그렇지 않은 경우에는 꺼낸 인형을 bascket에 넣어줌
bascket.push(doll);
}
break;
};
};
}
return answer;
}
스택을 이용해서 풀었는데 반복문과 조건문이 뭔가 복잡한것 같아 딱히 맘에들지는 않는구만..
'Algorithm > 문제풀이' 카테고리의 다른 글
Programmers - 신규 아이디 추천 / Javascript (0) | 2021.02.18 |
---|---|
Programmers - 문자열 압축 / Javascript (1) | 2021.02.17 |
Programmers - 124 나라의 숫자 / Javascript (0) | 2021.02.14 |
Programmers - 단어변환 / Javascript (0) | 2021.01.14 |
Programmers - 카펫 / Javascript (0) | 2021.01.11 |