function solution(board, moves) {
let answer = 0;
//5*5에서 board[4] = 1층 , board[0] = 5층
let basket = []
//j돌면서 인형 잡았으면 다음 move로 넘어가야 하므로 stop 해줄 요소 추가
let lock = 0
for(let i=0; i<moves.length; i++){
for(let j=0; j<board.length; j++){
const target = board[j][moves[i]-1]
if(target !== 0 && lock === i){
lock++; // 인형 뽑혔으므로 다음 move 일 때 작동하기
if(target === basket[basket.length-1]){
basket.pop()
answer += 2
} else {
basket.push(target)
}
board[j][moves[i]-1] = 0
}
}
}
return answer
}
- board 데이터가 층별로 되어있어서 column 별로 되어있으면 풀기 풀기가 훨씬 편할 것 같아서 변환하려 했는데 그것도 일이라서 그냥 풀었다.
- lock 을 쓴 부분이 있는데 안쓰고 더 깔끔하게 할 수 있을 것 같다.
반응형
'알고리즘 > javascript' 카테고리의 다른 글
[프로그래머스] 코딩테스트연습 > [1차] 뉴스 클러스터링 (0) | 2021.10.22 |
---|---|
[프로그래머스] 코딩테스트연습 > 예상 대진표 (0) | 2021.10.21 |
[프로그래머스] 코딩테스트연습 > 키패드 누르기 (0) | 2021.10.11 |
[프로그래머스] 코딩테스트연습 > 숫자 문자열과 영단어 (0) | 2021.09.30 |
[프로그래머스] 코딩테스트연습 > 신규아이디 추천 (0) | 2021.09.29 |