Algorithm

[카카오 코테 2019 | python] 인턴십크레인 인형뽑기 게임 ✅

삐롱K 2025. 6. 23. 17:49
728x90
반응형

 

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
반응형