본문 바로가기

PS/백준

[BOJ] 백준 2470 두 용액 (Swift)

반응형

문제

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

 

2470번: 두 용액

첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00

www.acmicpc.net

풀이

투 포인터 알고리즘으로 풀이할 수 있는 문제입니다.
용액의 특성 값을 오름차순으로 정렬해주었습니다.

포인터 두개를 첫번째 인덱스와 마지막 인덱스로 두었습니다.

이 포인터가 가르치는 요소의 합이 0보다 작다면?
오름차순으로 나열되어있기 때문에, 왼쪽 포인터를 오른쪽으로 한 칸 이동시켜줍시다.

0보다 크다면?
오른쪽 포인터를 왼쪽으로 한 칸 이동시켜줍시다.

이러한 작업을 거치면서 두 합이 0과 더 가까워진다면, 해당 두 수를 저장해줍시다.

소스코드

후기

정렬과 투 포인터를 사용하는 기본적인 문제였습니다.
0과 가까운 값을 찾아주는게 핵심이였습니다.

반응형