-
문제
3273번: 두 수의 합
n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는
www.acmicpc.net
문제 해석
접근 방법
투 포인터 알고리즘으로 풀 수 있는 문제입니다.
전체 코드
from sys import stdin n = int(stdin.readline().rstrip()) num_arr = sorted(list(map(int, stdin.readline().rstrip().split())), reverse=True) x = int(stdin.readline().rstrip()) ans = 0 i, j = 0, n-1 while i < j: # 투포인터 알고리즘 사용 temp = num_arr[i] + num_arr[j] if temp == x: ans += 1 i += 1 j -= 1 elif temp < x: i += 1 else: j -= 1 print(ans)'Algorithm > Python' 카테고리의 다른 글
[BOJ] 백준 2217 로프 (Python) + enumerate (1) 2023.08.22 [BOJ] 백준 2457 공주님의 정원 (Python) (1) 2023.08.22 [BOJ] 백준 1520 내리막 길 (Python) (0) 2023.08.21 [BOJ] 백준 5397 키로거 (Python) (1) 2023.08.20 [BOJ] 백준 1475 방 번호 (Python) (3) 2023.08.20