Algorithm(CodeTree, Python)/완전탐색1
[코드트리 자리 마다 숫자를 정하는 완전탐색] 개발팀의 능력 python
kurooru
2022. 12. 14. 13:10
# ability_list 입력
ability_list = list(map(int, input().split()))
# 함수들
# all_diff(a, b, c)
def all_diff(a, b, c):
# team_1, team_2
team_1, team_2 = ability_list[a] + ability_list[b], ability_list[c]
# team_3
team_3 = sum(ability_list) - team_1 - team_2
# 서로 다른지 반환
return team_1 != team_2 and team_2 != team_3 and team_1 != team_3
# calc(a, b, c)
def calc(a, b, c):
# team_1, team_2
team_1, team_2 = ability_list[a] + ability_list[b], ability_list[c]
# team_3
team_3 = sum(ability_list) - team_1 - team_2
# 최댓값과 최솟값의 차이 반환
return max(team_1, team_2, team_3) - min(team_1, team_2, team_3)
# 설계
# min_diff
import sys
min_diff = sys.maxsize
# 완전 탐색 시작
for i in range(5):
for j in range(5):
for k in range(5):
# 서로 다른 3개이면서, 모든 능력치가 다르면
if (i != j and j != k and i != k) and all_diff(i, j, k):
# min_diff 업데이트
min_diff = min(min_diff, calc(i, j, k))
# 출력
# 안바뀌었으면,
if min_diff == sys.maxsize:
# -1 출력
print(-1)
# 바뀌었으면,
else:
print(min_diff)