on my way

[백준 1940번] 주몽 (Python3, 실버4) 본문

algorithm/Python

[백준 1940번] 주몽 (Python3, 실버4)

wingbeat 2025. 1. 13. 19:50
반응형

import sys
N = int(sys.stdin.readline())
M = int(sys.stdin.readline())
num = sorted(map(int, sys.stdin.readline().split()))
start, end, answer = 0, N-1, 0
while start < end:
    if num[start] + num[end] == M:
        answer += 1
        start += 1
        end -= 1
    elif num[start] + num[end] < M:
        start += 1
    else:
        end -= 1
print(answer)

 

배열 정렬 후, 투 포인터로 합을 구한다.

start, end 두 포인터가 만나면 종료

 

두 수의 합이 M보다 작으면 작은 수를 늘려야 M에 가까워지고,

두 수의 합이 M보다 크면 큰 수를 줄여야 M에 가까워지는 것을 이용

반응형