[Udemy] Sliding window 관련 문제 풀이
지난 시간에 배운 sliding window 관련 문제 풀이를 하면서 개념을 더 탄탄하게 익혀보자.문제 1. minSubArrayLen양수 배열과 양수 두 매개변수를 받는 함수가 있다. 주어진 정수 인자보다 인접한 요소의 부분합이 크거나 같은 하위 배열의 최소 길이를 반환하라.minSubArrayLen([2,3,1,2,4,3], 7) // 2 -> because [4,3] is the smallest subarrayminSubArrayLen([2,1,6,5,4], 9) // 2 -> because [5,4] is the smallest subarrayminSubArrayLen([3,1,7,11,2,9,8,21,62,33,19], 52) // 1 -> because [62] is greater than 5..
[Udemy] Sliding Window 패턴 파악하기
오늘은 배열, 문자열, 연결 리스트와 같은 선형구조에서 데이터를 입력하거나 특정 방식으로 연속적인 하위 데이터 집합을 구하는 데 용이한 Sliding Window(슬라이딩 윈도우) 패턴에 대해 알아보자. 문제배열에서 n 갯수만큼 인접한 숫자들의 합 중 가장 큰 값을 반환하라. input: arr = [1,2,5,2,8,1,5], n = 2output: 10 input: arr = [1,2,5,2,8,1,5], n = 4output: 17 input: arr = [4,2,1,6], n = 1output: 6 input: arr = [4,2,1,6,2], n = 4output: 13 input: arr = [], n = 4output: null 일반적인 접근function maxSubarraySum(arr,..
[Udemy] Two pointer(투 포인터) 패턴 파악하기
오늘은 투 포인터 패턴에 대해 알아보자.투 포인터는 인덱스나 위치에 해당하는 포인터나 값을 만든 후 특정 조건에 따라 포인터를 이동시키는 패턴을 말한다.주로 배열, 문자열, 연결 리스트와 같은 선형 자료구조에서 한 쌍의 값이나 조건을 충족시키는 무언가를 찾을 때 사용된다.문제 1.오름차순으로 정렬된 배열에서 두 요소의 합이 0이 되는 첫번째 쌍을 찾아 반환하라. input: [-3, -2, -1, 0, 1, 2, 3]output: [-3, 3] input: [-2, 0, 1, 3]output: undefined input: [1, 2, 3]output: undefined 일반적인 접근function sumZero(arr) { for (let i = 0; i 반복문이 중첩되었기 때문에 시간 복잡도가 O(n..
[Udemy] Frequency Counter(빈도수 세기) 패턴 파악하기
오늘은 문자열, 배열과 같은 선형구조의 자료구조에서 빈도수 세기 패턴에 대해 알아보자.문제두 배열이 주어졌을 때, 첫번째 배열의 각 요소의 제곱수가 두번째 배열이 있는지 확인하는 함수를 작성하라. input: [1,2,3], [4,1,9]output: true순서는 상관없이 첫번째 배열의 각 요소의 제곱수가 모두 2번째 배열에 있으므로 trueinput: [1,2,3], [1,9]output: false2의 제곱수인 4가 2번째 배열에 없으므로 falseinput: [1,2,2], [1,1,4]output: false첫번째 배열에는 1이 1개, 2가 2개인데 두번째 배열에서는 1의 제곱수가 2개, 2의 제곱수가 1개이므로 빈도가 다르므로 false일반적인 접근function frequencyValues(..