코딩 테스트/문제 풀기
[프로그래머스] 프렌즈4블록
hazel_
2021. 3. 30. 14:08
programmers.co.kr/learn/courses/30/lessons/17679
def pop_num(b, m, n):
pop_set = set()
for i in range(1, n):
for j in range(1, m):
if b[i][j] == b[i - 1][j - 1] == b[i - 1][j] == b[i][j - 1] != "_":
pop_set |= set([(i, j), (i - 1, j - 1), (i - 1, j), (i, j - 1)])
for i, j in pop_set:
b[i][j] = 0
for i, row in enumerate(b):
empty = ["_"] * row.count(0)
b[i] = empty + [block for block in row if block != 0]
return len(pop_set)
def solution(m, n, board):
count=0
b=list(map(list, zip(*board)))
while True:
pop=pop_num(b,m,n)
if pop==0: return count
count+=pop
궁금한 것)
solution에서 b 리스트를 정의하여 Argument로 pop_num에 전달하였을때,
pop_num 함수에서 그 Argument를 수정하면 solution에서 보았을 때 b는 수정되어있다.
왜일까
h-sseung.tistory.com/118?category=956069
이 게시물 확인!