function solution(board, moves) {
let queue = [];
return moves.reduce((acc, cur) => {
for (let elem of board) {
if (elem[cur - 1]) {
if (queue[queue.length - 1] !== elem[cur - 1]) {
queue.push(elem[cur - 1]);
elem[cur - 1] = 0;
return acc;
} else {
queue.pop();
elem[cur - 1] = 0;
return acc + 2;
}
}
}
return acc;
}, 0);
}
카카오 문제는 항상 문제가 장황한데 코드를 쓰고보면 얼마 안된다. 아직 1단계라 그래
반복문을 두개 돌려버릴까 하다가 그냥 리듀스로 반복문 하나를 대체했다.
문제 대충 훑어보고 인형 없앨때마다 acc에 +1 했었다가 한참 찾아서 +2로 바꿨다.
문제 좀 똑띠 읽을 필요성을 느낀 문제였다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges#