jyamethyst21 님의 블로그

백준 13866번 - '팀 나누기' (PYTHON 풀이) 본문

CODING 💻

백준 13866번 - '팀 나누기' (PYTHON 풀이)

jyamethyst21 2026. 3. 12. 00:08

문제:

 

네 명의 스킬 레벨이 주어졌을 때, 두 팀의 스킬 차이를 최소화로 만들 수 있도록 팀을 만든 다음 실제 차이가 어느 정도인지 출력하는 문제이다.

 

풀이:

li = []
A, B, C, D = map(int,input().split())
li.append(A)
li.append(B)
li.append(C)
li.append(D)

li2 = sorted(li)
ill = li2[0] + li2[-1]
ggol = li2[1] + li2[2]

print(abs(ill-ggol))

A, B, C, D를 입력받고 li라는 리스트에 추가한다.

그 다음 오름차순으로 정렬한 다음 가장 큰 수와 가장 작은 수를 더해서 ill에, 그리고 나머지 두 개의 합은 ggol이라는 변수에 더하여 넣는다. 이렇게 하는 이유는 가장 큰 수+가장 작은 수와 나머지 두 개를 더한 수의 차이가 문제의 요구사항과 같이 차이가 가장 적기 때문이다.

그 다음 그냥 빼준 다음 출력하면 틀린다! 만약 ill이 더 크다면 음수가 나오기 때문에 절댓값을 적용하여야 해서 abs 함수를 활용하였고, 이를 사용하면 문제 없이 출력된다.