Python으로 구현한 20044번 Project Teams 문제 풀이입니다.
https://www.acmicpc.net/problem/20044
n = int(input())
data = list(map(int, input().split()))
data.sort()
left = 0
right = len(data) - 1
min_value = 1e9
while left < right :
temp = data[left] + data[right]
min_value = min(min_value, temp)
left += 1
right -= 1
print(min_value)
1. 공정성을 위해 data 리스트를 오름차순으로 정렬한다.
2. 가장 먼저 제일 왼쪽 값과 오른쪽 값을 더하기 위해 left는 0으로, right는 가장 마지막 인덱스로 초기화한다.
3. 반복문을 통해 left인덱스 값과 right인덱스 값을 더하여 temp에 저장한 뒤, min_value와 비교하여 더 작은 값을
min_value에 갱신한다.
4. 그 후 left는 1 증가시키고, right는 1 감소시킨다.
5. left의 값이 right 값보다 커지게 되면 반복문을 종료한 뒤 최종적으로 min_value 값을 출력한다.
'백준(Python) 풀이 > 그리디 알고리즘' 카테고리의 다른 글
백준(Python) 12927번 배수 스위치 풀이 (0) | 2021.12.29 |
---|---|
백준(Python) 3135번 라디오 풀이 (0) | 2021.12.19 |
백준(Python) 11508번 2+1 세일 풀이 (0) | 2021.12.18 |
백준(Python) 1758번 알바생 강호 풀이 (0) | 2021.12.18 |
백준(Python) 2847번 게임을 만든 동준이 풀이 (0) | 2021.12.18 |