728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/64061
코딩테스트 연습 - 크레인 인형뽑기 게임
[[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] 4
programmers.co.kr
코드
function solution(board, moves) {
let answer = 0; //스택에서 연속된 숫자를 삭제할때 count
let basket = []; //인형을 담을 스택
let col, row, move, doll;
for (col=0; col<moves.length; col++) {
move = moves[col]-1; //idx번호 맞추기 위해 -1
for (row=0; row<board.length; row++) { //열은 move로 고정돼있으므로 각 행을 보기만 하면 됨
doll = board[row][move];
if (doll !== 0) {
board[row][move] = 0; //값을 0으로 변경
if (basket.length !== 0 && basket[basket.length-1] === doll) { //바구니가 비어있지 않고 인형이 바구니에 들어있는 마지막 인형과 같다면
basket.pop(); //인형 터뜨리고
answer += 2; //count 2번 올리기
}
else {
basket.push(doll);
}
break;
}
}
}
return answer;
}
후기
- 처음에 접근을 잘못해서 4중 for문을 만들어 버렸고 결국 이중 for문으로 풀이를 하였지만 이게 최선일까 하는 생각이 드는 코드였다
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] 신규 아이디 추천 / JavaScript (0) | 2022.01.05 |
---|---|
[Programmers] 숫자 문자열과 영단어 / JavaScript (0) | 2022.01.05 |
[Programmers] 내적 / JavaScript (0) | 2022.01.05 |
[Programmers] 음양 더하기 / JavaScript (0) | 2022.01.05 |
[Programmers] 없는 숫자 더하기 / JavaScript (0) | 2022.01.05 |