→ Problems
[Algorithm] 백준 - 2467번 용액 (Swift)
Swift librarian
2024. 6. 17. 12:05
문제 소개
https://www.acmicpc.net/problem/2467

문제 풀이
정렬이 되어있으니 투포인터 알고리즘으로 풀면 된다.
import Foundation
let n = Int(readLine()!)!
var solutions = readLine()!.split(separator: " ").map { Int($0)! }
var value = 2_000_000_000
var left = 0
var right = n-1
var answer = (solutions[0], solutions[n-1])
while left < right {
let sum = solutions[left] + solutions[right]
if abs(sum) < value {
value = abs(sum)
answer = (solutions[left], solutions[right])
if sum == 0 { break }
}
if sum < 0 { left += 1}
if sum >= 0 { right -= 1}
}
print(answer.0, answer.1)
