티스토리 뷰

www.acmicpc.net/problem/13866

 

13866번: 팀 나누기

입력은 네 개의 정수 A, B, C 및 D가 포함된 한 줄로 구성되며 4명의 스킬 레벨이 주어진다. (0 ≤ A ≤ B ≤ C ≤ D ≤ 104)

www.acmicpc.net

1. ha (sum/2)의 값

총합을 2팀이기때문에 2로 나누면 중간점을 구할 수 있음

차의 최소를 구해야하기에 사용하며 3.번과 함께 이해하면 쉬움

2.for문

이중 for문을 활용해서 팀마다 가질 수 있는 level의 list에 1을 저장

3. for문

ha부터 0까지 탐색하며 level 두개의 합을 탐색하며 가장 먼저 발견된 값을 활용

4. 차의 최소구하기

3.에서 발견한 값과 sum-발견한 값의 차이를 구하면 차의 최소가 됨


list=[]
sum=0
for i in range(1,5):
    t = int(input())
    sum+=t
    list.append(t)

#print(list)

list2 = []
i=0
a=0
while i!=1000000:
    list2.append(a)
    i+=1

ha = sum//2

for i in range(0,4):
    for j in range(i+1,4):
        temp = list[i] + list[j]
        list2[temp]=1

i = ha
while True:
    if list2[i]==1:
        print("%d" %(sum-2*i))
        break
    i-=1

 

 

'파이썬 > 파이썬 문제' 카테고리의 다른 글

1966 - queue활용  (0) 2021.03.22
10828 - 스택  (0) 2021.03.21
15649 - n과m(1)  (0) 2021.03.18
백준 재귀함수  (0) 2021.03.16
백준 2562 - 최댓값  (0) 2021.03.11