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)

 

 

 

 

 

 

 

'algorithm > baekjoon 문제' 카테고리의 다른 글

[백준 11003번] 최솟값 찾기  (0) 2022.12.15
[백준 10986] 나머지 합  (0) 2022.12.13
[백준 11660] 구간 합 구하기 5  (0) 2022.12.12
[백준 11659]구간 합 구하기4  (0) 2022.12.12
등수 매기기[2012번]  (0) 2022.07.10