반응형

Software Courses/Algorithm 2

이분탐색(Binary Search)

이분 탐색 - 정렬된 배열에서 중간에 위치한 값과 목표 값을 비교해서 목표 값의 위치를 찾는 알고리즘 - 목표 값이 있는 지 확인하는 알고리즘 동작 1. 배열의 맨 왼쪽과 맨 오른쪽을 가리킬 index 변수 두 개 left와 right를 선언합니다. 2. left와 right의 중간 위치인 mid를 구하고 mid 위치에 있는 값과 목표 값을 비교합니다. 2-1. 목표 값과 mid에 위치한 값이 같으면, 탐색을 멈춥니다. 2-2. 목표 값보다 mid에 위치한 값이 작으면, left = mid + 1 해줍니다. 2-3. 목표 값보다 mid에 위치한 값이 크면, right = mid + 1 해줍니다. 3. 탐색이 끝날 때까지 2번을 반복합니다. 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ..

Two pointers

Two pointers - 배열 A에서 2개의 포인터를 이용해서 문제를 해결하는 알고리즘 동작 - 포인터를 어떻게 움직이느냐에 따라 조금 다릅니다. 여기서는 시작점에서 2개의 포인터를 오른쪽으로 이동시키는 알고리즘을 설명하겠습니다. 1. 2개의 포인터(left, right)는 배열의 첫 부분을 가리킨다. 2. 두 포인터가 가리키는 값의 합이 목표치 X보다 작으면, right 포인터를 오른쪽으로 한 칸 옮깁니다. 3. 두 포인터가 가리키는 값의 합이 목표치 X보다 크면, left 포인터를 오른쪽으로 한 칸 옮깁니다. 4. right 포인터가 배열의 끝에 갈 때까지 또는 문제의 특정 목표에 도달하면 동작을 끝냅니다. - two pointers에 대한 좋은 강의가 있어서 참고했습니다. 구현 - www.acmi..

반응형