티스토리 뷰
Algorithm/Data Structure
(Python) - 프로그래머스 (2019 카카오 개발자 겨울 인턴쉽) : 크레인 인형뽑기 게임
하눤석 2022. 1. 17. 13:22728x90
https://programmers.co.kr/learn/courses/30/lessons/64061
- 해설 :
5x5의 2차원 배열로 이루어진 인형뽑기 게임에서 같은 인형을 2번 연속 뽑을경우 2점을 얻는 게임이다. 크레인에서 인형을 뽑는 순서가 주어질 때 얻을 수 있는 점수를 출력하면 된다.
- 풀이:
stack을 사용하면 쉽게 해결할 수 있는 문제이다. 크레인이 인형을 뽑는 상황을 y좌표는 고정하며 x의 좌표가 5이상 또는 인형을 만날때까지 1씩 증가시켜주었고 만약 인형을 만났다면 이를 stack에 넣는다. stack에 넣을 때 stack의 top과 현재 넣을 인형을 비교하여 같다면 stack.pop()을 실행하고 점수를 2점 카운팅한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | def solution(board, moves): maps = [[] for _ in range(len(board))] stack = [] answer = 0 for i in moves: for j in range(len(board)): if board[j][i-1] != 0: if stack: if stack[-1] == board[j][i-1]: stack.pop() answer+=2 else: stack.append(board[j][i-1]) else: stack.append(board[j][i-1]) board[j][i-1] = 0 break return answer | cs |
320x100
'Algorithm > Data Structure' 카테고리의 다른 글
(Python) - 프로그래머스 : 올바른 괄호 (0) | 2022.01.21 |
---|---|
(Python) - 프로그래머스(2018 KAKAO BLIND RECRUITMENT) : [1차] 캐시 (0) | 2022.01.21 |
(Python) - 프로그래머스 : 짝지어 제거하기 (0) | 2022.01.18 |
(Python) - 프로그래머스 : 더 맵게 (0) | 2022.01.18 |
(Python) - 프로그래머스 : 기능개발 (0) | 2022.01.17 |
댓글
© 2022 WonSeok, All rights reserved