popeye0618

Backend Developer

[python] 백준 - 1253 (좋다)

ko 0 조회수 시리즈 · 알고리즘 #알고리즘

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

골드4 문제이며, 제한 시간은 2초이다.

해결 과정

투 포인터를 사용해서 좋은 수인지 검사해보고 답을 체크해나가면 되는 문제였다.

풀이

py
import sys
input = sys.stdin.readline

n = int(input())
arr = list(map(int, input().split()))
arr.sort()

answer = 0
for i in range(n):
    num = arr[i]
    left, right = 0, n - 1

    while left < right:
        if left == i:
            left += 1
            continue
        if right == i:
            right -= 1
            continue

        if arr[left] + arr[right] == num:
            answer += 1
            break

        if arr[left] + arr[right] > num:
            right -= 1
        else:
            left += 1

print(answer)

느낀점

투포인터의 기본을 물어보는 문제같다. 자기 자신을 포함하면 안되므로 이 조건만 잘 처리하면 되는 문제였다고 생각한다.

댓글

0

아직 댓글이 없습니다.

댓글 쓰기