백준 / 3273 / 두 수의 합 / python

맹민재·2023년 5월 17일
0

알고리즘

목록 보기
96/134
n = int(input())
n_list = list(map(int, input().split()))
x = int(input())

n_list.sort()

a1, a2 = 0, n-1

cnt = 0
while a1 < a2:
    tmp = n_list[a1] + n_list[a2]

    if tmp == x:
        cnt += 1
        a1 += 1
        a2 -= 1
    elif tmp < x:
        a1 += 1
    else:
        a2 -= 1
print(cnt)

투 포인터 알고리즘 문제
리스트의 처음과 끝을 인덱스로 갖는 두 개의 변수를 통해 정답을 구한다.
두 인덱스의 리스트 값에 따라 인덱스를 변경하면서 정답을 구한다.

profile
ㄱH ㅂrㄹ ㅈr

0개의 댓글