(H)프로그래머스#JS - 크레인 인형뽑기

SSO·2020년 5월 22일
0

프로그래머스Lv1

목록 보기
1/47

문제

https://programmers.co.kr/learn/courses/30/lessons/64061

풀이

//me 2020
function solution(board, moves) {
    var container = [];
    var count = 0;
    
    // 인형 꺼내기
    for(var i=0; i<moves.length; i++){
        for(var j=0; j<board.length; j++){
            if(board[j][moves[i]-1] !== 0){ // [moves[i]-1]는 board의 두번째 인덱스
                if(container[container.length-1] ===board[j][moves[i]-1]){ // 앞의 숫자(인형)와 같으면 pop
                    container.pop();
                    count = count + 2;
                    board[j][moves[i]-1] = 0; // 인형 뽑은 경우의 숫자는 0으로 대체
                    break;
                }else{ // 앞의 숫자(인형)와 다르면 push
                    container.push(board[j][moves[i]-1]);
                    board[j][moves[i]-1] = 0; // 인형 뽑은 경우의 숫자는 0으로 대체
                    break;  
                  }
                } 
            }
        }
  
    return count;
}
// me 2021
function solution(board, moves){
  const answer = 0;
  const selected = [];
  
// selected
  for(let i=0; i<moves.length; i++){
    let index=moves[i]-1;
    for(let j=0; j<board.length; j++){
     if(board[j][index] !== 0){
       selected.push(board[j][index]);
       board[j][index] = 0;
       break;
     }
    }
  }
  console.log(selected);
  
// 연속 숫자
// selected에서 연속된 숫자 count하는 방법을 못찾음..!ㅠㅠ
// selected를 별도로 만들기 전에 stack 개념을 적용했어야?
  

  
  
  return answer;
}
// best

참고

오래 걸릴 문제가 아닌데..

profile
happy

1개의 댓글

comment-user-thumbnail
2020년 10월 4일

board[j]moves[i]-1] = 0; 한 이유가 먼가요??

답글 달기