[10/19] 3273 (두 수의 합)

이경준·2021년 10월 19일
0

코테

목록 보기
138/140
post-custom-banner

실버3 문제 실패
이분탐색 or 투 포인터

효율적인 코드

n = int(input())
arr = list(map(int, input().split()))
x = int(input())

arr.sort()
cnt = 0

left, right = 0, n-1

while ( left != right ):
    ssum = arr[left] + arr[right]
    
    if ssum == x:
        cnt += 1
        left += 1
        
    elif ssum > x:
        right -= 1
        
    else:
        left += 1
        
print(cnt)

로직

  1. 정렬
  2. 중간으로 인덱스를 하나씩 좁힘
  3. left와 right가 같아지면 끝
profile
The Show Must Go On

0개의 댓글