[알고리즘] 투 포인터 vs 슬라이딩 윈도우

hysong·2022년 10월 14일
0

Algorithm

목록 보기
11/18
post-thumbnail
이름정렬 여부윈도우 사이즈이동 방향
투 포인터대부분 O가변→ ←
슬라이딩 윈도우X불변

투 포인터 (Two Pointers)

투 포인터는 대개 시작점과 끝점, 또는 왼쪽 포인터와 오른쪽 포인터 두 지점을 기준으로 하는 전략이다.
주로 정렬된 배열에서 두 포인터 사이의 범위를 좁혀 나가게 된다.

[1, 2, 3, 4, 5]     시작
1, [2, 3, 4, 5]     왼쪽 포인터 +1
1, 2, [3, 4, 5]     왼쪽 포인터 +1
1, 2, [3, 4], 5     오른쪽 포인터 -1

슬라이딩 윈도우 (Sliding Window)

슬라이딩 윈도우는 고정 사이즈의 윈도우가 이동하면서 윈도우 내에 있는 데이터들을 확인하는 전략이다.
주로 정렬된 배열을 대상으로 하는 투 포인터 기법과 달리, 슬라이딩 윈도우는 정렬 여부에 관계없이 활용될 수 있다.

사실 슬라이딩 윈도우는 2개의 네트워크 호스트 간의 패킷 흐름을 제어하기 위한 방법을 지칭하는 네트워크 용어이다.
네트워크에서 패킷을 전송할 때 고정 사이즈의 윈도우가 옆으로 이동하면서 그 다음 패킷들을 전송하는 방식인 것이다.

window size = 3
[1, 2, 3], 4, 5
1, [2, 3, 4], 5
1, 2, [3, 4, 5]

1개의 댓글

comment-user-thumbnail
2022년 10월 14일

참고 자료 :
파이썬 알고리즘 인터뷰 (박상길 지음)

답글 달기