본문 바로가기

백준 write-up/정렬 & 그리디

[백준] Project Teams : 20044번 - Python

728x90
반응형

https://www.acmicpc.net/problem/20044

 

20044번: Project Teams

입력은 표준입력을 사용한다. 입력의 첫 번째 행에는 팀 수를 나타내는 양의 정수 n(1 ≤ n ≤ 5,000)이 주어진다. 그 다음 행에 학생 si 의 코딩 역량 w(si)를 나타내는 2n개의 양의 정수가 공백으로

www.acmicpc.net

 

 

 

문제의 접근 방법

 

- 학생의 수는 항상 짝수.

- 가장 높은 역량을 가진 학생과 가장 낮은 역량을 가진 학생이 한 팀이 되면 됨.

- 오름차순 정렬, 내림차순 정렬.

- 최솟값 구하기.

 

 

 

문제 풀이 방법

 

팀 수를 나타내는 N 입력 받기 -> 학생들의 코딩 역량을 나타내는 양의 정수 2N개 입력받아 리스트에 저장 -> 가장 큰 수와 가장 작은 수를 같은 팀에 넣기 위해 오름차순 정렬(a), 내림차순 정렬(b) 해주기 -> w의 길이만큼 반복문을 돌려 리스트 a와 b의 가장 첫 번째 인덱스부터 더해서 arr에 추가해주기 -> 더한 값들 중 가장 작은 값을 출력해주기!

 

 

 

소스코드

N = int(input())
w = list(map(int, input().split()))

a = sorted(w)
b = sorted(w, reverse=True)

arr = []

for i in range(len(w)):
    x = a[i] + b[i]
    arr.append(x)
    
print(min(arr))
728x90
반응형