λ¬Έμ
https://www.acmicpc.net/problem/2467
νμ΄
1) ν¬ν¬μΈν°λ₯Ό μ¬μ©ν νμ΄
# λ°±μ€ 2467λ² λ¬Έμ - μ©μ‘
import sys
input = sys.stdin.readline
n = int(input())
liquids = list(map(int, input().split()))
left_idx = 0
right_idx = n - 1
ans = abs(liquids[left_idx] + liquids[right_idx])
ans_left = left_idx
ans_right = right_idx
while left_idx < right_idx: # left_idxμ right_idxλ λ§λλ©΄ μλλ€
tmp = liquids[left_idx] + liquids[right_idx]
if abs(tmp) < ans:
ans_left = left_idx
ans_right = right_idx
ans = abs(tmp)
if ans == 0:
break
if tmp < 0:
left_idx += 1
else:
right_idx -= 1
print(liquids[ans_left], liquids[ans_right])
2) μ΄μ§νμμ ν΅ν νμ΄
# Binary Search
import sys
input = sys.stdin.readline
n = int(input())
liquids = list(map(int, input().split()))
ans = float("INF")
ans_left = 0
ans_right = 0
for i in range(n-1):
current = liquids[i]
start = i + 1
end = n - 1
while start <= end:
mid = (start + end) // 2
tmp = current + liquids[mid]
if abs(tmp) < ans:
ans = abs(tmp)
ans_left = i
ans_right = mid
if tmp == 0:
break
if tmp < 0:
start = mid + 1
else:
end = mid - 1
print(liquids[ans_left], liquids[ans_right])
'ποΈ Algorithm > π© λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π© [λ°±μ€] [Python] 2589λ²_보물 νμ (0) | 2022.12.14 |
---|---|
π© [λ°±μ€] [Python] 3273λ²_λ μμ ν© (0) | 2022.12.14 |
π© [λ°±μ€] [Python] 3184λ²_μ (0) | 2022.12.07 |
π© [λ°±μ€] [Python] 1743λ²_μμλ¬Ό νΌνκΈ° (0) | 2022.12.07 |
π© [λ°±μ€] [Python] 9465λ²_μ€ν°μ»€ (0) | 2022.12.02 |