Hippo's data
[프로그래머스] 크레인 인형뽑기 게임 Python 풀이 본문
728x90
프로그래머스(Programmers) 크레인 인형뽑기 게임 문제
2019 카카오 개발자 겨울 인턴십 문제
난이도 : Level 1
<문제 링크>
https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
뽑힌 인형 보관을 스택구조를 활용하여 쉽게 계산할 수 있습니다
def solution(board, moves):
answer = 0
# 뽑힌 인형 저장할 빈 스택 정의
stack = []
# move 반복 / i는 각 번호 칸 위치
for i in moves:
# num-> 각 번호 칸의 높이 높이 하나씩 낮아지면서 순회함 / 행동한번 후 num을 0으로 초기화
num = 0
while num < len(board):
# 인형을 만났을 때
if board[num][i-1] != 0:
# 스택에 인형이 존재하고 뽑힌 인형과 스택에 쌓인 마지막 인형과 같은 경우
if len(stack) > 0 and stack[-1] == board[num][i-1]:
stack.pop() # 스택에서 해당 인형 제거
answer += 2 # 인형 두 개가 사라지므로 +2
else:
stack.append(board[num][i-1]) # 스택에 인형 추가
board[num][i-1] = 0 # 뽑기 기계속 인형 제거
break # 다음 move로 넘어감
num += 1 # 높이 한칸 줄어듬
return answer
->while문을 사용하였지만 for문을 이용해서 더 간결하게 표현할 수도 있겠네요,,,
728x90
'Algorithm > 프로그래머스(programmers)' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 Python 풀이 (2) | 2024.01.25 |
---|---|
[프로그래머스] 완주하지 못한 선수 Python 풀이 (0) | 2024.01.25 |
[프로그래머스] K번째수 Python 풀이 (0) | 2024.01.23 |
[프로그래머스] 컨트롤 제트 Python 풀이 (0) | 2024.01.23 |
[프로그래머스] 큰 수 만들기 Python 풀이 (0) | 2024.01.21 |