728x90
https://programmers.co.kr/learn/courses/30/lessons/64061
- 생각
- 표 왼쪽에서 오른쪽으로 바꾸어 인형뽑기 실시
- 남은 인형 수 확인 편리
- 인형이 남아 있지 않는 경우 오류, 인덱스 오류 ㅡ> 해결
- 표 왼쪽에서 오른쪽으로 바꾸어 인형뽑기 실시
0 | 1 | 0 | ㅡ> | 1 | 2 | ||
2 | 3 | 0 | 2 | 3 | 1 | ||
1 | 2 | 2 | 2 |
- 코드
# board : 인형배치(아래에서 위로 쌓임), moves : 인형 뽑는 열 위치
def solution(board, moves):
# 인형 터트린 수
answer = 0
N = len(board)
# 인형 바구니
dolls = []
# 인형배치(왼쪽에서 오른쪽으로 쌓기)
board = list(map(list, zip(*board[::-1])))
# 인형 없는 부분 지우기
for i in range(N):
while 0 in board[i]:
board[i].remove(0)
for n in moves:
# 인형이 존재할 때
if board[n - 1]:
doll = board[n - 1].pop()
# 바구니에 인형 없거나 마지막에 넣은 인형과 다르다면
if dolls == [] or doll != dolls[-1]:
# 바구니에 추가
dolls.append(doll)
# 마지막에 넣은 인형과 같으면
else:
# 터트리기
dolls.pop()
answer += 2
return answer
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[백준] 7576. 토마토 - Python (0) | 2022.06.13 |
---|---|
[백준] 1181. 단어 정렬 - Python (0) | 2022.06.13 |
[백준] 4949. 균형잡힌 세상 - Python (0) | 2022.06.13 |
[백준] 7586. 덩치 - Python (0) | 2022.06.12 |
[백준] 11723. 집합 - Python (0) | 2022.06.12 |
댓글