πŸ—οΈ Algorithm/🟩 λ°±μ€€

🟩 [λ°±μ€€] [Python] 3273번_두 수의 ν•©

Dbswnstjd 2022. 12. 14. 09:21

문제

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

 

3273번: 두 수의 ν•©

n개의 μ„œλ‘œ λ‹€λ₯Έ μ–‘μ˜ μ •μˆ˜ a1, a2, ..., an으둜 이루어진 μˆ˜μ—΄μ΄ μžˆλ‹€. ai의 값은 1보닀 ν¬κ±°λ‚˜ κ°™κ³ , 1000000보닀 μž‘κ±°λ‚˜ 같은 μžμ—°μˆ˜μ΄λ‹€. μžμ—°μˆ˜ xκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, ai + aj = x (1 ≤ i < j ≤ n)을 λ§Œμ‘±ν•˜λŠ”

www.acmicpc.net

풀이

# λ°±μ€€ 3273번 문제 - 두 수의 ν•©
n = int(input())
a = sorted(list(map(int, input().split())))
x = int(input())
answer = 0
left, right = 0, n-1
while left < right:
    temp = a[left] + a[right]
    if temp == x:
        answer += 1
        left += 1
    elif temp < x:
        left += 1
    else:
        right -= 1
print(answer)

투 포인터λ₯Ό μ‚¬μš©ν•˜μ—¬ ν’€μ—ˆλ‹€.