반응형
Notice
Recent Posts
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

500error

[Cos Pro 1급, Python] 6차 1번 : 꽃피는 봄이 언제 오나요 본문

알고리즘/파이썬

[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, "입니다.")
반응형
Comments