- 포인트:
- 전수조사(백만, 천만 정도의 시간 복잡도라면) + 방향벡터
- 2차원 배열의 좌표를 1차원으로 표현할 수 있음 -> 1차원 순서값 = x * N + y
- x = 1차원 순서값 // N
- y = 1차원 순서값 % N
N = int(input())
C = [list(map(int, input().split())) for _ in range(N)]
dx, dy = [0, 0, 1, 0, -1], [0, 1, 0, -1, 0]
ans = 10000
def ck(flower_list):
cost = 0
flower_occupied = []
for order in flower_list:
x = order // N
y = order % N
if x == 0 or x == N-1 or y == 0 or y == N-1:
return 10000
for w in range(5):
flower_occupied.append((x+dx[w], y+dy[w]))
cost += C[x+dx[w]][y+dy[w]]
if len(set(flower_occupied)) != 15:
return 10000
return cost
for i in range(N*N):
for j in range(i+1, N*N):
for k in range(j+1, N*N):
ans = min(ans, ck([i, j, k]))
print(ans)
'> 알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글
***16768-Mooyo Mooyo (python, 파이썬) (0) | 2020.10.19 |
---|---|
**1012-유기농 배추 (python, 파이썬) (0) | 2020.10.18 |
*16956-늑대와 양 (python, 파이썬) (0) | 2020.10.17 |
**16675-두 개의 손 (python, 파이썬) (0) | 2020.10.17 |
**17413-단어 뒤집기 2 (python, 파이썬) (0) | 2020.10.17 |
댓글