728x90
나의 풀이
def solution(m, n, board):
answer = 0
board = [list(board[i]) for i in range(m)]
while True:
check = [[False] * n for _ in range(m)]
for i in range(m - 1):
for j in range(n - 1):
if board[i][j] == board[i][j + 1] == board[i + 1][j] == board[i + 1][j + 1] != 'X':
check[i][j] = check[i][j + 1] = check[i + 1][j] = check[i + 1][j + 1] = True
count = sum([sum(check[i]) for i in range(m)])
if count:
for i in range(m):
for j in range(n):
if check[i][j]:
board[i][j] = 'X'
for j in range(n):
for _ in range(m):
for i in range(m - 1, 0, -1):
if board[i][j] == 'X':
board[i][j], board[i - 1][j] = board[i - 1][j], board[i][j]
answer += count
else:
break
return answer
반응형
'Coding Test > Programmers' 카테고리의 다른 글
[프로그래머스/파이썬] 삼각 달팽이 (0) | 2022.06.17 |
---|---|
[프로그래머스/파이썬] 2개 이하로 다른 비트 (0) | 2022.06.16 |
[프로그래머스/파이썬] 피로도 (0) | 2022.06.16 |
[프로그래머스/파이썬] 2 x n 타일링 (0) | 2022.06.16 |
[프로그래머스/파이썬] 배달 (0) | 2022.06.16 |