반응형
programmers.co.kr/learn/courses/30/lessons/64061
구현하는 문제였습니다.
풀이방법
1. 인형을 뽑을 때의 위치(행)를 구한다.
2. 뽑은 인형을 배열에 담고 연속인지 판별해 상태를 갱신한다.
3. 답출력
Code
function getDollPos(board,oneMove){
for(let i = 0; i < board[0].length; i++){
if(board[i][oneMove]) return i;
}
return -1;
}
function updateDollState(doll){
for(let i = 0; i < doll.length - 1; i++){
if(doll[i] === doll[i+1] && doll[i]){
doll.pop()
doll.pop()
return 1;
}
}
return 0;
}
function solution(board, moves) {
let answer = 0;
let doll = [];
for(let i = 0; i < moves.length; i++){
const pos = getDollPos(board,moves[i]-1);
if(pos!==-1){
doll.push(board[pos][moves[i]-1]);
board[pos][moves[i]-1] = 0;
if(updateDollState(doll)){
answer += 2;
}
}
}
return answer;
}
console.log(solution([[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]],[1,5,3,5,1,2,1,4]))
'Algorithm > Implementation' 카테고리의 다른 글
(C++, Javascript) - 프로그래머스(Summer/Winter Coding(~2018)) : 소수만들기 (0) | 2020.12.29 |
---|---|
(C++) - 프로그래머스(월간코드챌린지) : 쿼드압축 후 개수 세기 (0) | 2020.12.28 |
(C++) - 백준(BOJ) 15686번 : 치킨배달 답 (0) | 2020.10.14 |
(C++) - 백준(BOJ) 17219번 : 비밀번호 찾기 답 (0) | 2020.10.07 |
(Javascript) - 백준(BOJ) 11005번 : 진법 변환 2 (0) | 2020.10.03 |