๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[BAEKJOON python] 14889_์คํํธ์ ๋งํฌ ๋ณธ๋ฌธ
๐ฆฅ ์ฝํ
/BAEKJOON
[BAEKJOON python] 14889_์คํํธ์ ๋งํฌ
์ง์ง์ํ์นด 2022. 10. 10. 00:28728x90
๋ฐ์ํ
์ค๋์ ์คํํธ๋งํฌ์ ๋ค๋๋ ์ฌ๋๋ค์ด ๋ชจ์ฌ์ ์ถ๊ตฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค.
์ถ๊ตฌ๋ ํ์ผ ์คํ์ ํ๊ณ ์๋ฌด ์ฐธ์๋ ์๋๋ค.
์ถ๊ตฌ๋ฅผ ํ๊ธฐ ์ํด ๋ชจ์ธ ์ฌ๋์ ์ด N๋ช ์ด๊ณ ์ ๊ธฐํ๊ฒ๋ N์ ์ง์์ด๋ค.
์ด์ N/2๋ช ์ผ๋ก ์ด๋ฃจ์ด์ง ์คํํธ ํ๊ณผ ๋งํฌ ํ์ผ๋ก ์ฌ๋๋ค์ ๋๋ ์ผ ํ๋ค.
BOJ๋ฅผ ์ด์ํ๋ ํ์ฌ ๋ต๊ฒ ์ฌ๋์๊ฒ ๋ฒํธ๋ฅผ 1๋ถํฐ N๊น์ง๋ก ๋ฐฐ์ ํ๊ณ , ๋ฅ๋ ฅ์น๋ฅผ ์กฐ์ฌํ๋ค.
๋ฅ๋ ฅ์น Sij๋ i๋ฒ ์ฌ๋๊ณผ j๋ฒ ์ฌ๋์ด ๊ฐ์ ํ์ ์ํ์ ๋, ํ์ ๋ํด์ง๋ ๋ฅ๋ ฅ์น์ด๋ค.
ํ์ ๋ฅ๋ ฅ์น๋ ํ์ ์ํ ๋ชจ๋ ์์ ๋ฅ๋ ฅ์น Sij์ ํฉ์ด๋ค.
Sij๋ Sji์ ๋ค๋ฅผ ์๋ ์์ผ๋ฉฐ, i๋ฒ ์ฌ๋๊ณผ j๋ฒ ์ฌ๋์ด ๊ฐ์ ํ์ ์ํ์ ๋, ํ์ ๋ํด์ง๋ ๋ฅ๋ ฅ์น๋ Sij์ Sji์ด๋ค.
์ถ๊ตฌ๋ฅผ ์ฌ๋ฏธ์๊ฒ ํ๊ธฐ ์ํด์ ์คํํธ ํ์ ๋ฅ๋ ฅ์น์ ๋งํฌ ํ์ ๋ฅ๋ ฅ์น์ ์ฐจ์ด๋ฅผ ์ต์๋ก ํ๋ ค๊ณ ํ๋ค.
์ฒซ์งธ ์ค์ N(4 ≤ N ≤ 20, N์ ์ง์)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ S๊ฐ ์ฃผ์ด์ง๋ค.
๊ฐ ์ค์ N๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , i๋ฒ ์ค์ j๋ฒ์งธ ์๋ Sij ์ด๋ค.
Sii๋ ํญ์ 0์ด๊ณ , ๋๋จธ์ง Sij๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
์ฒซ์งธ ์ค์ ์คํํธ ํ๊ณผ ๋งํฌ ํ์ ๋ฅ๋ ฅ์น์ ์ฐจ์ด์ ์ต์๊ฐ์ ์ถ๋ ฅํ๋ค.
import sys
input = sys.stdin.readline
def dfs(d, num) :
global N, answer
if d == N // 2 : # ํ ์ฌ๋ ์
start, link = 0, 0
for i in range(N) :
for j in range(N) :
# ํ ๋ณ๋ง๋ค..
if visited[i] and visited[j] :
start += team[i][j]
elif not visited[i] and not visited[j] :
link += team[i][j]
answer = min(answer, abs(start-link))
# ๋ฐฉ๋ฌธํํ, ์ํํ ๋๋๊ธฐ
for i in range(num, N) :
if not visited[i] :
visited[i] = 1
dfs(d + 1, i + 1)
visited[i] = 0
N = int(input())
team = []
for i in range(N) :
team.append(list(map(int, input().split())))
answer = int(1e9)
visited = [0] * N
dfs(0, 0)
print(answer)
# input
# 6
# 0 1 2 3 4 5
# 1 0 2 3 4 5
# 1 2 0 3 4 5
# 1 2 3 0 4 5
# 1 2 3 4 0 5
# 1 2 3 4 5 0
# output
# 2
728x90
๋ฐ์ํ
'๐ฆฅ ์ฝํ > BAEKJOON' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON python] 12100_2048(easy) (0) | 2022.10.10 |
---|---|
[BAEKJOON python] 13460_๊ตฌ์ฌ ํ์ถ2 (0) | 2022.10.10 |
[BAEKJOON python] 14888_์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (0) | 2022.10.09 |
[BAEKJOON python] 14501_ํด์ฌ (0) | 2022.10.09 |
[BAEKJOON python] 13458_์ํ๊ฐ๋ (0) | 2022.10.09 |
Comments