[leetcode] 35. Search Insert Position - array
https://leetcode.com/problems/search-insert-position/description/ 고유 정수의 정렬된 배열과 목표값이 주어졌을 때, 목표값이 발견되면 인덱스를 반환합니다. 그렇지 않은 경우 순서대로 삽입했을 때 인덱스가 있을 위치를 반환합니다. 런타임 복잡도가 O(log n)인 알고리즘을 작성해야 합니다. Example 1:Input: nums = [1,3,5,6], target = 5Output: 2 Example 2:Input: nums = [1,3,5,6], target = 2Output: 1 Example 3:Input: nums = [1,3,5,6], target = 7Output: 4 일단 돌아가게 만들었지만... 시간 복잡도 때문에 리팩토링 해야한다...
[Algorithm] 알고리즘 기본 패턴 1 - Frequency Counter (빈도수 세기)
1. Frequency Counter (빈도수 세기) 배열/ 문자열의 요소들의 빈도수를 비교할 때 사용하며이 패턴은 Object 또는 Set을 사용하여 값의 값/빈도를 수집합니다중첩 루프 또는 O(N^2) 중첩 루프를 O(n)으로 최적화 해야 합니다 예 1)두 개의 배열을 인수로 받는 same이라는 함수가 있습니다. 이 함수는 배열의 모든 값이 두 번째 인수 배열에 해당하는 값의 제곱을 갖는 경우 참을 반환해야 합니다. 값의 빈도는 동일해야 합니다. same([1,2,3], [4,1,9]) // true same([1,2,3], [1,9]) // false same([1,2,1], [4,4,1]) // false 이전 사용했던 풀이법은 아래와 같습니다.const same = (arr1, arr2) =..