[알고리즘] 삽입 정렬 [Insertion Sort]
[알고리즘] 삽입 정렬 [Insertion Sort]삽입 정렬은 카드 게임을 할 때 손에 든 카드를 정렬하는 방식과 유사한 간단한 정렬 알고리즘입니다.이 알고리즘은 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입하는 방식으로 작동합니다. 삽입 정렬의 작동 방식두 번째 원소부터 시작합니다.현재 원소를 이전의 원소들과 비교합니다.현재 원소보다 큰 원소를 만나면, 그 원소를 오른쪽으로 이동시킵니다.작은 원소를 만나거나 배열의 시작에 도달하면, 현재 원소를 그 위치에 삽입합니다.이 과정을 배열의 마지막 원소까지 반복합니다. 예시 1배열 [5, 2, 4, 6, 1, 3]을 오름차순으로 정렬 1단계: [5, 2, 4, 6, 1, 3] (2를 5 앞으로 이..
[알고리즘] 다중 포인터 패턴: 고유값 세기 (countUniqueValues)
[알고리즘] 다중 포인터 패턴: 고유값 세기 (countUniqueValues)https://y-chyachya.tistory.com/142위의 내용과 같이 다중 포인터나 투 포인터 패턴을 사용해서 해결할 수 있습니다.다만 위와 다른것은 처음과 끝에서 가운데로 이동하는게 아닙니다.그래도 마찬가지로 두개의 포인터를 사용한다는 것이 관건입니다.조건에 따라 두 포인터가 특정 방향으로 이동하도록하고 정해진 배열의 개수를 반환합니다. countUniqueValues([1, 1, 1, 1, 2, 2,]); // 2countUniqueValues([]) // 0countUniqueValues([1, 2, 3, 4, 5, 6, 6, 6, 8]) // 7 힌트위의 설명에 덧붙이자면루프를 돌면서 1부터 j는 루프대..
[알고리즘] 다중 포인터 패턴 (Multiple Pointers)
[알고리즘] 다중 포인터 패턴 (Multiple Pointers) 이 패턴은 인덱스나 위치를 나타내는 포인터나 값을 설정한 다음, 특정 조건에 따라 중간 지점에서 시작하거나 끝 지점을 향해 이동하는 것을 의미합니다.결국, 배열이나 문자열 같은 선형 구조나, 이중 연결 리스트 또는 단일 연결 리스트 같은 구조를 다루는 방법입니다.핵심은 한 쌍의 값이나 조건을 만족시키는 것을 찾는다는 개념입니다.대부분의 경우, 한 쌍의 값을 찾게 됩니다. 문제 오름차순으로 정렬된 배열이 주어집니다.이 배열에서 합계가 0인 첫 번째 쌍을 찾아야 합니다즉, 배열에서 두 숫자를 찾아 그 합이 0이 되도록 하는 쌍을 찾는 함수입니다.sumZero([-3, -2, -1, 0, 1, 2, 3]); // [-3, 3]sumZero([..