진취적 삶
[코드 트리] 개발팀의 능력 / 완전 탐색 본문
코드
# 최대 능력의 팀과 최소 능력의 팀간의 능력 차이중 가능한 최솟값
arr = list(map(int,input().split()))
def sum_diff(i,j,k,l):
sum1 = arr[i] + arr[j]
sum2 = arr[k] + arr[l]
sum3 = sum(arr) -sum1 -sum2
if (sum1!= sum2 and sum1!=sum3 and sum2!=sum3):
return max(sum1,sum2,sum3) - min(sum1,sum2,sum3)
return 1e6
min_diff = 1e6
for i in range(len(arr)):
for j in range(len(arr)):
for k in range(len(arr)):
for l in range(len(arr)):
if i!=j and i!=k and i!=l and j!=k and j!=l and k!=l:
min_diff = min(min_diff,sum_diff(i,j,k,l))
if min_diff == 1e6:
print(-1)
else:
print(min_diff)
코드 설명
1. 2 명 2명 1명으로 나누기 위해서 4중 for 문을 사용한다.
2. 나머지 1명의 경우 자연스럽게 전체 합에서 뺀 경우 구할수 있음
3. 그룹의 sum 값들이 달라야 하니깐 조건문 통해서 진행해준다.
4. 만약 그룹의 값들이 전부 다른 경우가 없는경우 return 1e6 을 해준다.
'알고리즘' 카테고리의 다른 글
[코드 트리] 물체 두개 정해서 완전탐색 / 완전 탐색 (0) | 2024.08.27 |
---|---|
[코드 트리] 숫자 카운트 / 완전탐색 (0) | 2024.08.26 |
[코드 트리] 밭의 높이를 고르게하기 / 완전 탐색 (0) | 2024.08.23 |
[코드 트리 조별 과제] G or H 2 / 완전탐색 (0) | 2024.08.23 |
[코드 트리] 아름다운 수열 2 / 완전탐색 (0) | 2024.08.22 |