https://programmers.co.kr/learn/courses/30/lessons/64061
100% 완벽한 코드라고 생각하지 않지만
충분히 고민하고 생각해낸 보람이 있는 코드이다!
function solution(board, moves) {
let result = 0; // 뺀 인형 갯수
let box = []; // 뽑은 인형담는 통
for(var i=0; i<moves.length; i++){ // ===!!!인형뽑기 시작!!!===
for(var j=0; j<board.length; j++){ // 인형뽑기 기계에서
if(board[j][moves[i]-1] !== 0){ //인형 뽑아서
if(box.length > 0){ // 뽑은 인형이 1개 이상일 때
var lastdoll = box.pop(); // 인형 통에서 맨위에 있는 인형 빼기
if(lastdoll == board[j][moves[i]-1]){ //맨위 인형이랑 뽑은 인형이랑 같으면
result += 2; //둘 다 빼버리고 뺀 인형 갯수 증가 (!!다시 돌려놓지 않음)
}else{ //박스에 있던 애랑 다르면
box.push(lastdoll); // 뺐던 인형 다시 돌려놓고
box.push(board[j][moves[i]-1]); //박스에 넣고
}
}else{ // 처음 뽑는 인형일때
box.push(board[j][moves[i]-1]); //박스에 넣고
}
board[j][moves[i]-1] = 0; // 뽑은 인형 자리를 비움
break; // 다음 뽑기 실행
}
}
}
return result;
}
요즘 자바말고 스크립트로 코테푸는데 자바랑 혼동되는 개념이 너무많다..
정리를 꼭하고 넘어가야할듯 ㅠㅠ
728x90
반응형