728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3
이 문제는 크레인(board)에서 moves에 입력된 순서대로 인형을 뽑아서 바구니에 넣습니다.
바구니에 넣을 때 같은 모양의 인형이 2개가 붙어있으면 터트러져 사라집니다.
터트려진 인형의 개수를 출력하는 문제입니다.
입력 : board, moves
- board : 2차원 배열로 가로줄씩 크레인 상태를 담은 변수입니다.
배열 안에 0은 빈 공간을 의미하고 0 이외의 숫자는 인형의 모양입니다.
- moves : 뽑을 인형의 위치를 담은 변수입니다.
출력 : answer
- answer : 바구니에 인형을 담는 과정에서 터트러져 사라진 인형의 개수입니다.
코드를 보시려면 더보기를 클릭하시면 됩니다.
더보기
크레인 인형뽑기 게임
# 문제
# 크레인 인형뽑기 게임
# https://programmers.co.kr/learn/courses/30/lessons/64061?language=python3#
# 나의 풀이
def solution(board, moves):
basket = [0]
answer = 0
for i in range(len(moves)):
for j in range(len(board)):
sero = list(zip(*board))[moves[i] - 1]
if sero[j] != 0:
if basket[-1] == sero[j]:
del basket[-1]
answer += 2
else:
basket.append(sero[j])
board[j][moves[i] - 1] = 0
break
return answer
if __name__ == '__main__':
print(solution([[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]))
|
list를 이용하여 문제를 풀었습니다. 그리하여 세로줄로 뽑는 것은 zip을 이용하였고 바구니에 넣을 때 같은 모양의 인형이 2개가 붙어있으면 del을 이용하여 삭제했습니다.
del 외에 pop을 이용하여 문제를 풀 수도 있습니다.
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Python]풍선 터트리기 (0) | 2020.09.19 |
---|