파이썬 알고리즘 225번 | [백준 1253번] 좋다 - 투포인터

Yunny.Log ·2022년 8월 5일
0

Algorithm

목록 보기
230/318
post-thumbnail

225. 좋다

1) 어떤 전략(알고리즘)으로 해결?

  • 투포인터

2) 코딩 설명

  • 개인적으로 얘보다 3151 번이 (224번 , 이전 게시글) 훨~씬 어려웠는데 얘가 골드 4래서 깜놀 ㅇㅁㅇ 원큐에 풀었다!

<내 풀이>


from collections import Counter
import sys

n = int(sys.stdin.readline().strip())
# N개의 수 중에서 어떤 수가 
# 다른 수 두 개의 합으로 나타낼 수 있다면 
# 그 수를 “좋다(GOOD)”
lis = list(map(int, sys.stdin.readline().rstrip().split()))
lis.sort()
res = 0
for i in range(n) :
    s,e = 0, n-1
    target = lis[i]
    while s<e : 
        cmp = lis[s] + lis[e]
        #print(target, cmp)
        if cmp < target : 
            s+=1
        
        elif cmp == target : 
            if s==i : s+=1
            elif e==i : e-=1
            else : 
                res+=1
                break
        
        else : e-=1

print(res)

<반성 점>

<배운 점>

  • 투포인터 완벽 이해!

0개의 댓글