본문 바로가기

알고리즘/투포인터

(3)
파이썬 | 백준 | 2003 | 수들의 합 2 Solution # 2003, 수들의 합 2 import sys N, M = map(int, sys.stdin.readline().split()) arr = list(map(int, sys.stdin.readline().split())) start, end, sum, count = 0, 0, 0, 0 while True: if sum >= M: if sum == M: # 합이 M이 되면 개수 1 증가 count += 1 sum -= arr[start] # start 위치 1 증가 start += 1 else: if end == N: # end가 N이 되면 탐색 종료 break sum += arr[end] # end 1 증가 end += 1 print(count) www.acmicpc.net/problem..
파이썬 | 백준 | 1806 | 부분합 Solution # 1806, 부분합 import sys N, S = map(int, sys.stdin.readline().split()) arr = list(map(int, sys.stdin.readline().split())) start, end, sum = 0, 0, 0 min_ = 100001 while True: # sum이 s 이상이 되면 start를 하나 증가시킴 if sum >= S: sum -= arr[start] # start의 위치 1 증가 start += 1 min_ = min(min_, end - start + 1) # start~end까지가 현재 최소값보다 작으면 최소값 갱신 else: if end == N: # end=N되면 탐색 종료 break else: sum += arr[..
파이썬 | 백준 | 2473 | 세 용액 Solution. 투 포인터 세 특성값 중 하나를 고정으로 두고 나머지 두 값을 가지고 투포인터.. # 2473, 세 용액 import sys N = int(sys.stdin.readline()) solution = list(map(int, sys.stdin.readline().split(" "))) solution.sort() diff = 3000000001 # 세 용액 특성값의 합 0에 가깝게 res = [] for i in range(len(solution) - 2): # 중복 체크 if i > 0 and solution[i] == solution[i - 1]: continue left = i + 1 right = len(solution) - 1 while left < right: sum = sol..