https://www.acmicpc.net/problem/2470
2470번: 두 용액
첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00
www.acmicpc.net
풀이
문제를 보았을때 알수있는 힌트
작은 값과 큰 값을 비교해서 최소 값을 찾는 문제인데 양쪽의 포인트를 두고 천천히 내려가며 비교하면 끝이 나는 문제이다.
처음에 먼저 정렬을 진행하고 오른쪽과 왼쪽 변수를 만든다.
최대값은 제일 먼저 선택한 오른쪽 왼쪽이라고 가정하고 진행하였다.
이후 왼쪽이 오른쪽을 넘어가기 전까지 반복하며 값을 계산한다.
합이 음수이면 왼쪽을 한칸 땡기고 양수이면 오른쪽에서 한칸 내리는 형식으로 계속 진행한다.
이러면 어렵지 않게 결과가 나온다.!
import sys
input= sys.stdin.readline
n = int(input())
n_list=list(map(int,input().split()))
n_list.sort()
right = n-1
left = 0
result=n_list[left]+n_list[right]
temp=result
result_rl=[n_list[left],n_list[right]]
while left<right:
temp= n_list[right]+n_list[left]
if abs(result)>abs(temp):
result = temp
result_rl=[n_list[left],n_list[right]]
if temp<0:
left += 1
else:
right -= 1
# print(result)
print(*result_rl)
https://github.com/dydwkd486/coding_test/blob/main/baekjoon/baekjoon2470.py
GitHub - dydwkd486/coding_test: 코딩테스트 공부한 내용 정리
코딩테스트 공부한 내용 정리. Contribute to dydwkd486/coding_test development by creating an account on GitHub.
github.com
'Coding Test > baekjoon' 카테고리의 다른 글
[백준 1041] 주사위 - python (solved.ac - 골드 5) (0) | 2022.05.09 |
---|---|
[백준 9935] 문자열 폭발 - python (solved.ac - 골드 4) (0) | 2022.05.09 |
[백준 11054] 가장 긴 바이토닉 부분 수열 - python (solved.ac - 골드 3) (0) | 2022.05.05 |
[백준 11722] 가장 긴 감소하는 부분 수열- python (solved.ac - 실버 2) (0) | 2022.05.05 |
[백준 2660] 회장 뽑기- python (solved.ac - 골드 5) (0) | 2022.05.03 |