본문 바로가기

반응형

Two Pointer

(4)
[백준] 수들의 합2(python) 백준, 수들의 합 2 TL;DR 투 포인터(two pointer) 문제 분석 1. N개의 자연수 배열에 대해서 i부터 j까지 연속된 수들의 합이 M이 되는 경우의 수를 구하는 프로그램을 작성하라. 2. 1
[프로그래머스] 숫자의 표현(python) 프로그래머스, 숫자의 표현 TL;DR 투 포인터(two pointer)를 활용하여 문제를 해결할 수 있는지 문제 분석 1. 자연수 n을 연속한 자연수로 표현하는 방법이 여러 개가 존재한다. 2. 자연수 n이 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return 하는 함수를 완성하라. 3. n n: break return answer - 이전에 리트코드에서 푼 투 포인터 문제들은 양 끝단, 즉, 배열의 시작과 끝을 left와 right라는 변수를 할당하고 푸는 문제들이었다. - 이번 문제도 마찬가지로 투 포인터라고 분류 할 수 있기 때문에 두 개의 시작과 끝을 나타내는 변수인 left와 right를 사용하려고 하였다. - 하지만, 그럴 경우 시간 초과로 인해 문제를 해결할 수가 없다. 불필..
[리트코드] Merge Sorted Array(python) 리트코드, Merge Sorted Array_정렬된 배열 병합 TL;DR 배열을 문제에 제시된 조건에 맞게 해결할 수 있는지 문제 분석 1. m과 n의 유효한 원소를 갖고 있는 비내림차순으로 정렬된 정수 배열 nums1와 nums2 2. nums1과 nums2를 nums1에 비내림차순으로 정렬하여 합쳐야 한다. 3. 정렬된 답은 nums1에 저장되어야 한다. 4. nums1은 m + n길이를 갖고 있으며 첫 번째, m개 만큼이 정렬의 대상이 되는 정수들이다. 5. nums2는 n길이를 갖고 있으며, n이 0이라면 무시한다. - 비내림차순(non-decreasing order) : 오름차순과는 다른 개념이다. nums1과 nums2에서 같은 원소가 있을 때는 nums1의 원소가 nums2의 원소보다 앞서 ..
[리트코드] 3Sum(python) 리트코드, 3Sum_세 수의 합 TL;DR 투 포인터(two pointer)를 활용한 배열 문제 문제 분석 1. 주어진 숫자 배열에서, 세 수를 더해서 0이 되는 세 수를 배열에 담아 반환하라. 2. 단, 이 때, 세 수의 인덱스가 같으면 안된다.(i != j, i != k, j != k) 3. 동일한 세 수의 쌍이 배열에 담기면 안 된다. - 1 ~ 2 : 해결해야 하는 문제에 대해서 설명하고 있다. - 3 : 문제 해결 시 주의사항에 대해서 설명하고 있다. - 예를 들어, [0, 0, 0, 0, 0, 0]이 주어졌을 경우 [[0, 0, 0], [0, 0, 0]]과 같이 저장이 되어야 한다. - 이 때, 각 0의 인덱스가 모두 달라야 한다. 같은 인덱스를 참조하여 넣은 답일 경우 오답이 된다. 입출력 ..