Cute Dog Bopping Head
본문 바로가기
Code IT/Algorithm

[구름LEVEL] 단풍나무 (Python)

by 찾 2023. 2. 4.


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를 해서 새로운 맵을 만들어 갱신해주거나 새로운 맵을 만들어서 해줘야 한다는 것.

그렇지 않을 경우, 방금 갱신된 원소로 인해 다른 원소가 영향을 받을 수 있다는 점!

 

구름에듀 오랜만에 써보는데.. 역시 백준 빼고 다 좋다 ㅋㅋㅋㅋㅋㅋㅋㅋ

문제가 복사가 되지 않아서 일일히 캡쳐했다는 점과 코드를 복붙하니까 탭으로 인해서 들여쓰기가 너무 큼직큼직하게 된다는 것 빼고

테케 각각에 대해서 채점결과와 시간도 보여주고, 메모리 사용량까지 보여주니까 너무 좋다

테케 몇 개 틀려도 내가 어떤 점에서 틀린 건지 알 수 있다는 게 공부하기도 좋고 힌트 얻어서 내 힘으로 문제 풀어보기에도 좋을 듯.

백준처럼 불친절한 곳에서도 살아남을 줄 알아야하는데.. 나는 아직 그럴 역량이 안된다 ㅎ

 

프로그래머스와 구름을 열심히 써보자구요

댓글