알고리즘/파이썬
[Cos Pro 1급, Python] 6차 1번 : 꽃피는 봄이 언제 오나요
Internal Server Error
2024. 3. 3. 15:54
반응형
문제
n x n 크기 격자 모양 정원에 칸마다 핀 꽃 또는 피지 않은 꽃을 심었습니다. 이 정원의 꽃이 모두 피는 데 며칠이 걸리는지 알고 싶습니다. 핀 꽃은 하루가 지나면 앞, 뒤, 양옆 네 방향에 있는 꽃을 피웁니다.
정원 크기 n과 현재 정원의 상태를 담은 2차원 배열 garden이 주어졌을 때, 모든 꽃이 피는데 며칠이 걸리는지 return 하도록 solution 함수를 작성해주세요.
코드
def solution(n, garden):
answer = 0
a = -1
temp = []
dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]
while len(temp) < len(garden) ** 2:
temp.clear()
for i in range(len(garden)):
for j in range(len(garden)):
if garden[i][j] == 1:
temp.append([i, j])
for i in temp:
for j in range(4) :
x=i[0]+dx[j]
y=i[1]+dy[j]
if (x >= 0 and x < len(garden)) and (y >= 0 and y < len(garden)):
garden[x][y] = 1
answer += 1
return answer + a
n1 = 3
garden1 = [[0, 0, 0], [0, 1, 0], [0, 0, 0]]
ret1 = solution(n1, garden1)
print("solution 함수의 반환 값은", ret1, "입니다.")
n2 = 2
garden2 = [[1, 1], [1, 1]]
ret2 = solution(n2, garden2)
print("solution 함수의 반환 값은", ret2, "입니다.")
반응형