일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Typescript
- SWEA
- 알고리즘
- 백준
- 네트워크
- 코딩테스트
- 이것이 코딩테스트다 with 파이썬
- 정렬
- greedy
- Python
- 자바
- Baekjoon
- Next.js
- 프로그래머스
- programmers
- 연습문제
- javascript
- 자바스크립트
- React
- 그리디
- CSS
- js
- 코딩테스트 입문
- Lv2
- bfs/dfs
- 프로그래머스 JS
- Lv1
- Java
- node.js
- CLASS
Archives
- Today
- Total
개발야옹
[ 시뮬레이션 : lv1 ] : 크레인 인형뽑기 게임 (_JS) 본문
프로그래머스 - 문자열 lv1
크레인 인형뽑기 게임 (_JS)
문제 링크
https://programmers.co.kr/learn/courses/30/lessons/64061
제한 사항
- board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다.
- board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다.
- 0은 빈 칸을 나타냅니다.
- 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다.
- moves 배열의 크기는 1 이상 1,000 이하입니다.
- moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다.
입출력 예
코드
2022.01.17.
function solution(board, moves) {
var answer = 0;
let stack = [];
moves.forEach( move => {
let flag = true;
let stackLen = stack.length;
stack = SameChecking(stack);
if( stackLen !== stack.length ){
answer += 2;
}
board.forEach( x => {
if(flag){
if( x[move-1] !== 0 ){
stack.push(x[move-1]);
x[move-1] = 0;
flag = false;
}
}
else{
return false;
}
});
});
return answer;
}
function SameChecking(stack){
let prevItem = 0;
stack.forEach( ( item, index ) => {
if( prevItem === item ){
stack.splice(index-1, 2);
return stack;
}
prevItem = item;
});
return stack;
}
728x90
'Algorithm\CodingTest > Programmers' 카테고리의 다른 글
[ 정렬 : lv2 ] H-Index ( __JS ) (0) | 2022.02.19 |
---|---|
[ 문자열 : lv2 ] 문자열 압축 (_JS) // fail (0) | 2022.01.18 |
[ lv3 ] 불량 사용자 (_JS) (0) | 2022.01.17 |
[ 정렬 : lv2 ] 가장 큰 수 (_JS) (0) | 2022.01.17 |
[ 완전탐색 : lv1 ] 모의고사 ( _JS) (0) | 2022.01.11 |