ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준] 2470. 두용액 (투 포인터)
    코테 준비/이진탐색 2023. 2. 7. 21:12

    Two Pointers 알고리즘의 시간복잡도는 O(n)

    n=int(input())
    nlist=list(map(int,input().split()))
    nlist.sort()
    start=0
    end=n-1
    target=0 #0에 가까운
    sum=[]
    idx=[]
    while start<end:
        s=nlist[start]+nlist[end]
        if s<target: #두용액의 합이 0보다 작으면
            idx.append(abs(s))
            sum.append((nlist[start],nlist[end])) #0
            start+= 1
        elif s>target: #두용액의 합이 0보다 작으면
            idx.append(abs(s))
            sum.append((nlist[start],nlist[end]))
            end-= 1
        else:
            idx.append(abs(s))
            sum.append((nlist[start],nlist[end]))
            break
    k=idx.index(min(idx))
    print(*sum[k])

    '코테 준비 > 이진탐색' 카테고리의 다른 글

    1654. 랜선 자르기 (Python)  (0) 2022.12.08
    2805. 나무 자르기  (0) 2022.12.08
Designed by Tistory.