from copy import deepcopy
row = int(input())
treemap = []
treesum = 0
for i in range(row):
line = list(map(int,input().split()))
treemap.append(line)
treesum += sum(line)
col = len(treemap[0])
day = 0
xs = [0, 0, -1, 1]
ys = [1, -1, 0, 0]
while treesum > 0:
nextmap = deepcopy(treemap)
for r in range(row):
for c in range(col):
if treemap[r][c] == 0:
for x, y in zip(xs, ys):
x, y = r+x, c+y
if 0<=x<row and 0<=y<col:
if nextmap[x][y] >= 1:
nextmap[x][y] = nextmap[x][y]-1
treesum -= 1
day += 1
treemap = nextmap
print(day)
빠르게 푼 문제!
이렇게 무언가 퍼지는 문제라던가, 맵에 계속해서 갱신이 일어나야 하는 경우
꼭 기억해주어야 할 것은 deepcopy를 해서 새로운 맵을 만들어 갱신해주거나 새로운 맵을 만들어서 해줘야 한다는 것.
그렇지 않을 경우, 방금 갱신된 원소로 인해 다른 원소가 영향을 받을 수 있다는 점!
구름에듀 오랜만에 써보는데.. 역시 백준 빼고 다 좋다 ㅋㅋㅋㅋㅋㅋㅋㅋ
문제가 복사가 되지 않아서 일일히 캡쳐했다는 점과 코드를 복붙하니까 탭으로 인해서 들여쓰기가 너무 큼직큼직하게 된다는 것 빼고
테케 각각에 대해서 채점결과와 시간도 보여주고, 메모리 사용량까지 보여주니까 너무 좋다
테케 몇 개 틀려도 내가 어떤 점에서 틀린 건지 알 수 있다는 게 공부하기도 좋고 힌트 얻어서 내 힘으로 문제 풀어보기에도 좋을 듯.
백준처럼 불친절한 곳에서도 살아남을 줄 알아야하는데.. 나는 아직 그럴 역량이 안된다 ㅎ
프로그래머스와 구름을 열심히 써보자구요
'Code IT > Algorithm' 카테고리의 다른 글
[프로그래머스] 푸드 파이트 대회 (Python) (0) | 2023.02.06 |
---|---|
[구름LEVEL] 뒤통수가 따가워 (Python) - stack (0) | 2023.02.05 |
[프로그래머스] 문자열 나누기 (Python) (0) | 2023.02.03 |
[프로그래머스] 가장 가까운 같은 글자 (Python) (0) | 2023.02.02 |
[프로그래머스] 개인정보 수집 유효기간 (Python) (0) | 2023.02.01 |
댓글