1253 좋다

정민용·2023년 2월 17일

백준

목록 보기
63/286

문제

N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다.

N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라.

수의 위치가 다르면 값이 같아도 다른 수이다.

import sys

input = lambda: sys.stdin.readline().strip()

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

count = 0
for i in range(n):
  check_arr = []
  for j in range(n):
    if j != i:
      check_arr.append(arr[j])

  start, end = 0, n - 2
  while start < end:
    num = check_arr[start] + check_arr[end]
    if num == arr[i]:
      count += 1
      break
    elif num > arr[i]:
      end -= 1
    else:
      start += 1

print(count)

풀이

  • 어떤 수 : 반복문을 통해 설정
  • 다른 수 두 개 : 두포인터를 통해 설정

백준 1253 좋다

0개의 댓글