https://programmers.co.kr/learn/courses/30/lessons/64061
코딩테스트 연습 - 크레인 인형뽑기 게임
[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4
programmers.co.kr
풀이 과정
1. 입력받은 moves를 토대로 배열을 탐색함, 배열 값이 0이면 아래 칸으로 넘어감
2. 배열 값이 0이 아니면 바구니의 맨 위랑 인형의 종류를 비교 후, 같으면 답을 2만큼 증가시켜주고 바구니의 맨 위를 비움. 그리고 현재 인형을 꺼낸 배열의 값을 0으로 만들어줌
3. 인형의 종류가 같지 않다면 바구니 맨 위에 인형을 넣고 인형을 꺼낸 곳의 배열 값을 0으로 만들어 줌
위와 같은 방법으로 문제를 해결하였다.
소스 코드
파이썬
def solution(board, moves):
answer = 0
bascket = []
for back in moves:
back -= 1
for front in range(len(board)):
if board[front][back] != 0:
if len(bascket) != 0 and bascket[-1] == board[front][back]:
bascket.pop()
board[front][back] = 0
answer += 2
else:
bascket.append(board[front][back])
board[front][back] = 0
break
return answer
자바스크립트
function solution(board, moves) {
var answer = 0;
bascket = []
for (back of moves) {
back -= 1
for (var front = 0; front < board.length; front++) {
if (board[front][back] != 0) {
if (bascket.length != 0 && bascket[bascket.length - 1] == board[front][back]) {
bascket.pop()
board[front][back] = 0
answer += 2
} else {
bascket.push(board[front][back])
board[front][back] = 0
}
break
}
}
}
return answer;
}
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 음양 더하기 [파이썬] [자바스크립트] (0) | 2022.05.06 |
---|---|
프로그래머스 - 없는 숫자 더하기 [파이썬] [자바스크립트] (0) | 2022.05.06 |
프로그래머스 - 키패드 누르기 [파이썬] [자바스크립트] (0) | 2022.05.06 |
프로그래머스 - 숫자 문자열과 영단어 [파이썬] (0) | 2022.05.06 |
프로그래머스 - 신규 아이디 추천 [파이썬] (0) | 2022.05.05 |