나의 풀이
function solution(board, moves) {
let answer = 0;
let stack = [];
let garo = a.length;
// if (board)
// return answer;
for (let i = 0; i < garo; i++) {
for (let j = 0; j < garo; j++) {
//
if(board[i])
stack.push()
if (board[i][j] === b[i])
answer++;
else{
[i][j]
}
}
}
}
let a = [[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]];
let b = [1, 5, 3, 5, 1, 2, 1, 4];
console.log(solution(a, b));
모범 답안
function solution(board, moves){
let answer=0;
let stack=[];
moves.forEach(pos => {
for(let i=0; i<board.length; i++){
if(board[i][pos-1]!==0){
let tmp=board[i][pos-1];
board[i][pos-1]=0;
if(tmp===stack[stack.length-1]){
stack.pop();
answer+=2;
}
else stack.push(tmp);
break;
}
}
});
return answer;
}
let a=[[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]];
let b=[1, 5, 3, 5, 1, 2, 1, 4];
console.log(solution(a, b));
핵심 포인트
1) forEcah 용도 잘 기억하기, 안의요소가 b원소 하나하나씩 돈다.
2) 2개씩 사라지니까 answer +2 해야한다는점
3) 꺼내고 0 으로 바꾸기 즉, tmp로 값저장후 -> 0으로 치환 ( 순서바뀌면 안됨)
4) 마지막에 break를 해줘야 한곳을 다돌지않는다
'코딩테스트 > JavaScript' 카테고리의 다른 글
[코딩테스트] 쇠막대기 (0) | 2024.01.08 |
---|---|
[코딩테스트] 후위식 연산(postfix) (0) | 2024.01.07 |
[코딩테스트] 괄호문자제거 (3) | 2024.01.04 |
[코딩테스트] 올바른 괄호 (0) | 2024.01.03 |
[코딩테스트] 모든 아나그램 찾기 (1) | 2024.01.02 |