728x90
반응형
- 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/64061
- 2019 카카오 개발자 겨울 인턴십크레인 인형뽑기 게임
Q1) 문제를 어떻게 이해했나요?
A1) 크레인을 좌우로 움직이며 인형을 집어 바구니에 쌓는다. 같은 인형이 바구니에 연속으로 두 개 쌓이면 터진다. 인형이 터질 때마다 2개 사라지므로 2점을 얻는다. 인형은 가장 위에 있는 것만 집힌다.
Q2) 문제를 어떻게 풀 예정인가요?
A2) moves: 크레인을 몇 번째 열에서 작동시킬지 알려주는 리스트.
크레인 작동 시: 해당 열의 맨 위 인형을 찾는다. 인형을 바구니(stack)에 넣는다. 바구니의 top 2개가 같으면 pop해서 사라진다 → 점수 +2
1. 빈 바구니(basket = [])와 정답(answer = 0) 준비.
2. moves의 각 열에 대해 다음 수행:
위에서 아래로 순회하며 0이 아닌 첫 번째 인형을 찾기.
- 찾았다면: 인형을 바구니로 이동.
- 이전 바구니 top과 같으면 pop 2번, answer += 2
- 아니면 바구니에 추가
- 인형 위치는 0으로 초기화
😊 내 풀이
def solution(board, moves):
bucket = []
answer = 0
for move in moves:
for n in range(len(board)):
if board[n][move-1] != 0:
bucket.append(board[n][move-1])
board[n][move-1] = 0
break
if len(bucket) >= 2:
if bucket[-2] == bucket[-1]:
bucket = bucket[:-2]
answer += 2
return answer
✅ 개선할 점
bucket = bucket[:-2]
대신에
bucket.pop()
728x90
반응형
'Algorithm' 카테고리의 다른 글
[카카오 코테 2022 | python] 주차 요금 계산 (0) | 2025.06.24 |
---|---|
[카카오 코테 2018 | python] 파일명 정렬 (0) | 2025.06.23 |
[백준 15649 | python] N과 M (1) (백트레킹) (0) | 2025.06.21 |
[카카오 코테 2018 | python] 비밀지도 (0) | 2025.06.19 |
[카카오 코테 2018 | python] [1차] 다트 게임 (0) | 2025.06.19 |