목록Algorithm/투 포인터 (3)
09009
문제 보기 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 소스 코드 # sys 모듈에 내장된 maxsize를 사용하면 시스템이 # 지정할 수 있는 최댓값과 최솟값 활용 가능 # - sys.maxsize, sys.maxsize import sys n, s = map(int,input().split()) arr = list(map(int,input().split())) left, right = 0, 0 sum = 0 # 최소 길이를..
문제 보기 https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 문제 해결 입력한 리스트를 정렬 후 첫번 째 원소와 마지막 원소의 절댓값 합(answer)을 정답의 초기값으로 설정한다. while 반복문을 돌리면서 두 용액의 절댓값 합이 초기에 설정했던 answer보다 작을 경우, 초기에 설정했던 것보다 0에 가까운 것이므로 answer와 final을 수정해주면 된다. 소스 코드 n = int(input()) arr..
문제 보기 https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 소스 코드 import sys input = sys.stdin.readline n = int(input()) arr = list(map(int,input().split())) x = int(input()) arr.sort() start, end = 0, len(arr)-1 cnt = 0 while start < end: if arr..