Tags
- sort
- DP
- LV2
- Java
- ๊ทธ๋ํ ํ์
- ๋ฌธ์์ด
- CodingTest
- ์ํ
- SpringBoot
- ๊ทธ๋ํ ์ด๋ก
- ๋๋น ์ฐ์ ํ์
- ๊ต์ฌ
- greedy
- ๊น์ด ์ฐ์ ํ์
- stack
- dfs
- ์ ์๋ก
- Study
- ์ ๋ ฌ
- ์๋ฃ๊ตฌ์กฐ
- ์๋ฎฌ๋ ์ด์
- ๊ตฌํ
- Brute Force Algorithm
- Dynamic Programming
- PGM
- BOJ
- BFS
- queue
- Python
- ๋ฐฑํธ๋ํน
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_14620 : ๊ฝ๊ธธ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ต์๋น์ฉ์ผ๋ก ์ธ ๊ฝ์ ์ฌ์ ์ ์๋ ์ต์ ๋น์ฉ์ ์ถ๋ ฅํ๋ค.
- ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํด์ผํ๋ ๋ธ๋ฃจํธ ํฌ์ค ๋ฌธ์ ์ด๋ค.
๐ธ ์ฝ๋ ๐ธ
import sys
input = sys.stdin.readline
N = int(input())
flower = []
visit = [[0]*N for _ in range(N)]
answer = 200*16
dx = [0, 0, -1, 0, 1]
dy = [0, -1, 0, 1, 0]
for i in range(N):
n = list(map(int,input().strip().split()))
flower.append(n)
def check(x, y):
for i in range(5):
if visit[x+dx[i]][y+dy[i]] == 1:
return False
return True
def switch(flag,x,y):
sum = 0
for i in range(5):
visit[x+dx[i]][y+dy[i]] = flag
sum += flower[x+dx[i]][y+dy[i]]
return sum
def dfs(coin, count, x):
global answer
if count >= 3:
if coin < answer:
answer = coin
return
for i in range(x, N-1):
for j in range(1, N-1):
if check(i,j):
dfs(coin + switch(1,i,j), count+1, i)
switch(0,i,j)
dfs(0, 0, 1)
print(answer)
๐ธ ์ฝ๋ ํด์ ๐ธ
- dx, dy : ํ์์น, ์ข,์,์ฐ,ํ ์ธ๋ฑ์ค๋ฅผ ์ํ ๋ฆฌ์คํธ
- check(x, y) ํจ์ : x, y ์ ๊ฝ์ ์ฌ์ ์ ์๋์ง ํ์ธ
- switch(flag, x, y) : x, y ์ ๊ฝ์ ์ฌ๊ฑฐ๋ ์ฌ์ง์์ ์ํ๋ก ๋ณ๊ฒฝ. ๋ ๊ฐ๊ฒฉ์ ํฉ๋ ๋ฐํ.
- dfs(coin, count, x)
- ํ๋จ์ ์ ๋ถ ์ํํ๋ฉฐ ์ต์๊ฐ์ ์ฐพ์
- ๊ฝ์ 3๊ฐ ์ฌ์ผ๋ฏ๋ก, dfs ์ฌ๊ท๊ฐ 3์ด ๋ ๋๊น์ง ํ์
- ๋ฐ๋ณต ํ์์์ x ์ขํ๋ง ์ธ์๋ก ๋๊ธฐ๋ฏ๋ก, y์ขํ ์ค๋ณต๊ฒ์ฌ๊ฐ ์๊น
๐ธ end ๐ธ
- ์๋นํ ์ด๋ ค์ ๋ ๋ฌธ์ ๋ค. ์ฒ์ ๋ดค์๋ ํฌ๊ธฐํ๊ณ , 2๋ฒ์งธ์๋ ๊ณ ๋ฏผํ๋ค ๋ต์์ง๋ฅผ ๋ดค๋ค.
๋ต์ง ์๊ณ ๋ฆฌ์ฆ์ ๋ณด๋ ํ ์ ์์ ๊ฒ ๊ฐ์์ 3ํ์ฐจ๋ก ๋์ ํ์ง๋ง, ์กฐ๊ธ์ฉ ์ค๋ฅ๊ฐ ์๊ฒจ์ ๊ฒฐ๊ตญ ๋ต์ ํฌ์คํ ์ ์ฐธ๊ณ ํ๋ค. - ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ด ํ๊ทธ์ ํ๋ ์์ง๋ง, bfs๋ ๋ฒกํธ๋ํน ๋ฑ๋ ์ ์ฉ๋๋ค.
- ์ฒ์์ y์ขํ ์ค๋ณต๊ฒ์ฌ๋ฅผ ๊ตฌํํ๊ณ ์ ํ์ง๋ง ์ฌ์ํ ์ค๋ฅ๊ฐ ๋ง์์ ธ์, ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋ ๋ฌด๊ฒ๋ฅผ ๋๊ณ ๊ฐ๋จํ ํํ๋ก ์ฝ๋๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_1548 : ๋ถ๋ถ ์ผ๊ฐ ์์ด (0) | 2022.09.11 |
---|---|
BOJ_2961 : ๋์์ด๊ฐ ๋ง๋ ๋ง์๋ ์์ (0) | 2022.09.10 |
BOJ_1037 : ์ฝ์ (0) | 2022.09.09 |
BOJ_4101 : ํฌ๋? (0) | 2022.09.09 |
BOJ_17626 : Four Squares (0) | 2022.09.07 |