문제 링크 (Level 1)
https://programmers.co.kr/learn/courses/30/lessons/64061
나의 코드 (python)
def solution(board, moves):
answer = 0
# 뽑은 인형을 담을 배열
result = []
for i in moves:
for j in range(len(board)):
if board[j][i-1] != 0:
result.append(board[j][i-1])
board[j][i-1] = 0
break
# 배열이 2개 이상 쌓였을 경우 검증
if len(result) >= 2:
for k in range(len(result)-1):
# 2개가 같은지 검증
if result[k] == result[k+1]:
# 2개를 카운팅
answer += 2
# 2개의 같은 인형을 제거
result = result[:k]
return answer
moves에 해당하는 열에 0아 아닌 행(비어 있지 않은 행)을 찾아서 그 인형을 뽑은 인형을 담을 배열(result)에 넣어줍니다.
그리고 인형을 뽑았기 때문에 board 배열에 해당 인형을 0으로 바꿔둡니다.
인형을 뽑으면 검증을 시작합니다. 검증했을 때 같은 값이 2개가 있다면 반드시 같은 인형 2개를 제거해주어야 합니다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 완주하지 못한 선수 (python) (0) | 2021.07.16 |
---|---|
[프로그래머스] 소수 만들기 (python) (0) | 2021.07.16 |
[프로그래머스] 음양 더하기 (python) (0) | 2021.07.15 |
[프로그래머스] 내적 (python) (0) | 2021.07.15 |
[프로그래머스] K번째 수 (python) (0) | 2021.07.15 |
댓글