๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[v.๋ฐฑํŠธ๋ž˜ํ‚น-์Šคํƒ€ํŠธ์™€ ๋งํฌ-14889]BAEKJOON_Python ๋ณธ๋ฌธ

๐Ÿฆฅ ์ฝ”ํ…Œ/BAEKJOON

[v.๋ฐฑํŠธ๋ž˜ํ‚น-์Šคํƒ€ํŠธ์™€ ๋งํฌ-14889]BAEKJOON_Python

์ง•์ง•์•ŒํŒŒ์นด 2022. 1. 27. 00:32
728x90
๋ฐ˜์‘ํ˜•

220127 ์ž‘์„ฑ

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” BAEKJOON ์„ ์ฐธ๊ณ ํ•ด์„œ ์ €๋งŒ์˜ ํ’€์ด๋ฅผ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค>

 

 

 

14889


์ฒซ์งธ ์ค„์— ์Šคํƒ€ํŠธ ํŒ€๊ณผ ๋งํฌ ํŒ€์˜ ๋Šฅ๋ ฅ์น˜์˜ ์ฐจ์ด์˜ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅ


 

 

๋‚ด ํ’€์ด

from itertools import combinations #์กฐํ•ฉ

n = int(input())
s = [list(map(int, input().split())) for i in range(n)]
members = [i for i in range(n)]
possible_team = []

# ์กฐํ•ฉ์œผ๋กœ ๊ฐ€๋Šฅํ•œ ํŒ€
for i in list(combinations(members, n//2)) :
    possible_team.append(i)

min_gap = 10000
for i in range(len(possible_team)//2) :
    team = possible_team[i]
    state_A = 0
    for j in range(n//2) :
        member = team[j]
        for k in team :
            state_A += s[member][k]

    team = possible_team[-i-1]
    state_B = 0
    for j in range(n//2) :
        member = team[j]
        for k in team :
            state_B += s[member][k]
    
    min_gap = min(min_gap, abs(state_A - state_B))

print(min_gap)

 

 

 

 

 

 

4
0 1 2 3
4 0 5 6
7 1 0 2
3 4 5 0
0

 

 

 

 

 

 

์ฐธ๊ณ ํ•˜์˜€์”๋‹ˆ๋Œฑ,,, ์–ด๋ ต๋Œœ,,,

์ดํ•ด๋Š”๊ฐ€๋Š”๋Ž…,ใ…œใ…กใ…œ

https://claude-u.tistory.com/372

 

#321 ๋ฐฑ์ค€ ํŒŒ์ด์ฌ [14889] ์Šคํƒ€ํŠธ์™€ ๋งํฌ

https://www.acmicpc.net/problem/14889 SOLUTION ์กฐํ•ฉ์œผ๋กœ ๋ชจ๋“  ํŒ€ ์กฐํ•ฉ์„ ๊ตฌํ•ด์ค€ ๋’ค, ๊ฐ๊ฐ์˜ ํŒ€ ๋Šฅ๋ ฅ์น˜๋ฅผ ์ƒ์„ฑํ•ด ๋น„๊ตํ•˜๋ฉด ๋œ๋‹ค. 0~n๊นŒ์ง€ ์กฐํ•ฉ์„ ์ƒ์„ฑํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ์— ๋‹ด์œผ๋ฉด ์ฒซ ์กฐํ•ฉ์˜ ์—ฌ์ง‘ํ•ฉ์€ ๋งˆ์ง€๋ง‰ ์กฐํ•ฉ์ด

claude-u.tistory.com

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments