Algorithm & Problem Solving/투 포인터(Two Pointer)
-
[백준 2018] 수들의 합 5 (Python)Algorithm & Problem Solving/투 포인터(Two Pointer) 2020. 12. 26. 18:34
www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 문제풀이 N : 입력값 arr : 배열(1부터 N) start, end : 투 포인터를 위한 포인터 now : 현재까지 더한 값 투 포인터(start, end)를 이용하여 해결할 수 있다. 1. N을 입력하고 배열(arr)에 1부터 N까지의 값을 넣어준다. 2. end와 now를 이용하여 now가 N이상이 될 때 까지 now에 arr[end]를 더하고 end를 1 증가시키는 과정을 반복한다..
-
[백준 2230] 수 고르기 (Python)Algorithm & Problem Solving/투 포인터(Two Pointer) 2020. 12. 26. 18:15
www.acmicpc.net/problem/2230 2230번: 수 고르기 첫째 줄에 두 정수 N, M(0≤M≤2,000,000,000)이 주어진다. 다음 N개의 줄에는 차례로 A[1], A[2], …, A[N]이 주어진다. 각각의 A[i]는 0 ≤ |A[i]| ≤ 1,000,000,000을 만족한다. www.acmicpc.net 문제풀이 N, M : 입력값 arr : 입력 배열 투 포인터(left, right)를 이용하여 해결할 수 있다. 1. 배열(arr)을 입력받고 정렬을 해준다. - 정렬을 하지 않으면 투 포인터를 정상적으로 사용할 수 없다. 2. left, right 를 이용하여 arr[right] 에서 arr[left]를 뺀다(이 값을 tmp 변수에 저장). - tmp가 M보다 작을 경우는 두..