본문 바로가기

공부하는 것들/알고리즘

백준 20044 : Project teams(그리디)

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

 

20044번: Project Teams

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

www.acmicpc.net

나눌 팀의 수가 정해지고, 학생들의 코딩 실력이 정해진다.

가장 실력의 합이 낮은 팀의 코딩 실력이 가장 크게 조를 구성해라.

INPUT : 팀의 수 // 학생들의 코딩 실력

OUTPUT : 가장 실력이 낮은 팀의 코딩실력 합

 

문제 풀이:

꼭 2인이서만 팀을 짜야 하기 때문에 가장 낮은 순과 가장 높은 순을 묶어주면 된다.

def solve(N, students):
    students = sorted(students)
    teams = []
    for i in range(N):
        teams.append([students[i]+students[(2*N-1)-i]])
    teams = [sum(x) for x in teams]
    return min(teams)

if __name__=='__main__':
    N = int(input())
    students = list(map(int, input().split()))
    print(solve(N, students))