algorithm/baekjoon 문제
[백준1253번] 좋다
장경훈
2022. 12. 15. 00:06
| # 백준 1543번 문제검색 링크 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net |


Key point
- 투 포인트 알고리즘을 사용한다.
- 앞에서부터 하나씩 target으로 잡고 조건이 성립되는지 확인한다.

문제 코드
import sys
input= sys.stdin.readline
N=int(input())
numbers=list(map(int, input().split()))
numbers.sort()
cnt=0
for i in range(N): #앞에서부터 하나씩 확인
find=numbers[i]
start=0
end=N-1
while start<end:#투포인트 알고리즘 적용
if numbers[start]+numbers[end]>find:
end-=1
elif numbers[start]+numbers[end]<find:
start+=1
else: #만약 조건이 성립되고 찾으려는 대상과 비교대상이 같지 않다면 cnt+=1
if i!=start and i!= end:
cnt+=1
break
elif i==start:
start+=1
elif i==end:
end-=1
#결과 출력
print(cnt)