오늘의 알고리즘풀이는 프로그래머스
를 이용했다.
깔끔한 화면,다양한 테스트 케이스 코딩테스트 연습하기에 정말 좋은 환경이다.
다만, 테스트 케이스 딱 하나 걸릴땐 뭔지 알려줄래? 😅
문제
인형을 뽑아 중복되는 인형을 연속적으로 뽑았을 때 점수를 얻는다.
입출력 예시
답안
function solution(board, moves) {
var answer = 0;
var box =[];
for(let i=0; i<moves.length;i++){
for(let k=0 ; k<board.length ;k++){
if(board[k][moves[i]-1]!= 0){
if(box.slice(-1)[0] ==board[k][moves[i]-1]){
box.pop();
board[k][moves[i]-1]=0;
answer+=2;
break;
}
else{
box.push(board[k][moves[i]-1]);
board[k][moves[i]-1]=0;
break;
}
}
}
}
return answer;
}
꺼내서 -> 비교하기
1) board
!=0 인 지점에서 꺼낸다
2) box
에 넣기 전에 box의 마지막 요소 & 꺼낸것 비교
3) 같으면 두개 삭제하며 cnt+=2 다르면 box에 추가
아쉬운 점
이중 for 문
과 잦은 if 조건절
의 사용을 자제할 필요가 있다.