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
이 게시물 확인!
'코딩 테스트 > 문제 풀기' 카테고리의 다른 글
[프로그래머스] 후보키 (0) | 2021.03.30 |
---|---|
[프로그래머스] 오픈채팅방 (0) | 2021.03.30 |
[프로그래머스] 뉴스 클러스터링 (0) | 2021.03.30 |
[프로그래머스] 캐시 (0) | 2021.03.29 |
[프로그래머스] 예상 대진표 (0) | 2021.03.29 |
댓글