문제
풀이
function solution(board, moves) {
var answer = 0;
//인형을 담을 바구니를 생성하고 moves 에 해당하는 인덱스(+1)를 바구니에 담아준다. 인형을 뽑으면 해당하는 인덱스는 0으로 바꿔준다 만약 뽑으려는 인덱스가 0일 시에는 인형이 안담겨있다는 뜻이므로(2차원 배열의 마지막 인덱스의 배열에서 0일경우) 아무일도 일어나지 않음
var basket = [];
for(let i = 0; i <moves.length; i++){
let pickerPosition = moves[i]
for(let x of board){
if(x[pickerPosition-1] == 0){
continue;
}else if(x[pickerPosition-1] !== 0){
basket.push(x[pickerPosition-1])
x[pickerPosition-1] = 0;
break;
}
}
}
for(let i = 0 ; i < basket.length; i++){
if(basket[i] == undefined){
basket.splice( i , 1 )
}
}
for(let i = 0 ; i < basket.length; i++){
if(basket[i] == basket[i+1]){
answer += 2;
basket.splice(i,2);
// 0 부터 시작을 하니 바로 다음루프로 돌아가 1부터 시작하게됨 -> i를 -1로 설정하여 0부터 다시 제대로 배열을 순회 할 수 있게되었다.
i = -1;
}
}
return answer;
}
처음에 i를 0으로 지정하니 테스트 케이스 1 , 2 에서 계속 에러가 났었다.
i가 0이게 되면 다음 루프에서는 i가 증가하게 되어 1부터 시작하게되어서 그런거였다. -1로 지정해주니 배열을 처음부터 잘 순회하여 에러가 해결되었다!
'알고리즘' 카테고리의 다른 글
[알고리즘]프로그래머스 LV.1 - 바탕화면 정리 (0) | 2024.07.02 |
---|---|
[알고리즘]프로그래머스 LV.1 - 숫자짝꿍(JS) (0) | 2024.06.21 |
[알고리즘]프로그래머스 LV.1 - 체육복(JS) (0) | 2024.06.21 |
[알고리즘]프로그래머스LV.1 - 대충 만든 자판(JS) (0) | 2024.06.19 |
[알고리즘] 프로그래머스 LV.1 - 모의고사(JS) (1) | 2024.06.13 |