chyam

[백준] 1253,python - 좋다 본문

백준

[백준] 1253,python - 좋다

chyam_eun 2025. 9. 5. 14:48

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

import sys
input = sys.stdin.readline

def main():   
    n = int(input())
    li = list(map(int,input().split()))
    li.sort() 
    cnt = 0
    
    for k in range(n):
        find = li[k] # 기준 값 
        s, e= 0, n-1 # 투 포인터 앞, 뒤 인덱스

        while s < e:
            sum = li[s] + li[e] 
            if sum == find: # 두개의 합이 기준값일 때
                if s != k and e != k: # 포인터가 그 인덱스를 가르키지 않으면 찾은것
                    cnt += 1
                    break
                elif s == k: # 포인터가 그 인덱스를 가르키면 옮겨야함
                    s += 1
                elif e == k:
                    e -= 1

            elif sum < find: # 찾는 값보다 작으면 앞에서 한칸 옮기기
                s += 1
            elif sum > find: # 크면 뒤에서 한칸 옮기기 
                e -= 1
    
    print(cnt)

main()