Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 정상회담2
- 인턴십 면접
- 2482
- Python
- 카카오
- 최장증가수열
- 기술면접
- 가장긴증가하는 부분수열
- DP
- 백준12738
- 백준12015
- 개발자 면접
- 카카오 면접
- 카카오 서류전형
- 카카오 자기소개서
- 2629
- LIS
- 백준
- 파이썬
- 백준11053
- 알고리즘
- 구간나누기
- Longest Increasing Subsequence
- 2228
- 단어수학
- 1670
- 카카오 인턴
- LIS 알고리즘
- 카카오 인턴십
- 여름인턴십
Archives
- Today
- Total
목록알고리즘/투 포인터 (Two Pointer) (1)
프로그래밍에 대한 고찰 및 생각

투 포인터 알고리즘(Two Pointer Algorithm) 투 포인터 알고리즘은 선형자료구조에서 특정부분집합을 빠르게 찾아낼때 사용된다. 예를 들어 다음 문제를 보자. 백준 1806번 - 부분합 위 문제같은 경우 N = 100000 일때 모든 부분합의 개수는 N^2 으로 많은 시간이 소요된다. 그렇다고 메모이제이션을 하기에는 부분합인 S의 범위가 1억이하이므로 메모리상으로도 초과가 발생한다. 이때 사용할 수 있는 알고리즘이 투 포인터 알고리즘 이다. 다음과 같은 배열에서 합이 10이상이되는 가장 짧은 길이를 구해보자. 먼저 우리가 찾을 부분배열의 시작 인덱스를 start, 마지막 인덱스를 end라고 하자. 처음에는 두값모두 0이다. 이후 현재 부분배열의 합이 S(10) 이상이 아니라면 end++ 하여 ..
알고리즘/투 포인터 (Two Pointer)
2021. 3. 24. 13:32