【스터디노트】/▷TIL43 코테 스터디 35일차 TIL + 오늘의 학습 키워드 투포인터 brute force 말고 투포인터 - 오늘의 학습 키워드 정렬 + 투포인터- 공부한 내용 본인의 언어로 정리하기1. 배열을 먼저 정렬한다2. 고정값을 선택: 첫번째 원소를 고정한다3. two pointer로 나머지 두 원소를 투포인터로 찾는다middle = left+1right = nums.length -1 수도코드1. 배열을 오름차순으로 정렬for( i =0 to nums.length -3) a. 중복제거 b. middle = i+1; right = nums.length-1 c. while middle - 오늘의 회고 - 어떤 문제가 있었고, 나는 어떤 시도를 했는지// ❌ 일반적인 이중 순회 (Brute Force)for (int left = i + 1; left 이전날 문제에 투포인터 문제가 나와서 right 가 0.. 2025. 5. 30. 코테 스터디 34일차 TIL + 오늘의 학습 키워드 슬라이딩윈도우 - 오늘의 학습 키워드슬라이딩 윈도우 left right 정해놓고 left 오른쪽으로 움직이고 right 왼쪽으로 움직여서 푸는 문제- 공부한 내용 본인의 언어로 정리하기두개의 포인터를 사용해서 윈도우를 만든다right 포인터로 문자열을 확장하면서 중복문자가 없는 부분 문자열을 찾는다.중복문자를 만나면 left 포인터를 이동시켜 중복을 제거한다각 단계에서 최대 길이를 업데이트 수도코드 function lengthOfLongestSubstring(s): charIndexMap = empty hashmap left=0 maxLength =0 for right = 0 to s.length -1: if s[right] in charIndexMap and charIndexMap.. 2025. 5. 26. 코테 스터디 33일차 TIL + 오늘의 학습 키워드 유클리드 거리 - 오늘의 학습 키워드원점과 가까운 거리 순서로 정렬한다.- 공부한 내용 본인의 언어로 정리하기어디까지 생각했는지 ..?x의 제곱값과 y의 제곱값의 합이 작은 순서대로 정렬하고 k개를 뽑으면 되는 문제코드로 구현은 아직 무리인거 같음 수도코드fuction kClosest(points,k): //각 점을 거리의 제곱, 원래 점 형태로 저장한다. for each point in points: distance_squared = point[0]² + point[1]² store(distance_squared, point) //2.거리 제곱 기준으로 오름차순 정렬 sort by distance_squared //3. 가장 가까운 k개 점 반환 return firs.. 2025. 5. 23. 코테 스터디 32일차 TIL + 오늘의 학습 키워드 BFS - 오늘의 학습 키워드 - 공부한 내용 본인의 언어로 정리하기BFS 너비 우선 탐색을 활용모든 0인 셀들을 시작점으로하여 동시에 BFS를 수행각 0 에서 출발하여 인접한 셀들로 거리를 전파이미 방문한 셀은 더 가까운 거리가 이미 계산 되었으므로 건너뜀 수도코드결과 배열을 무한대로 초기화큐 생성모든 셀을 순회하면서: -0인 셀 -> 거리 0으로 설정, 큐에 추가BFS 수행: -큐가 빌 때 까지: -현재 위치 poll -4방향 인접 셀 확인 -더 짧은거리로 갱신 가능하면: 거리 갱신 큐에 추가- 오늘의 회고 - 어떤 문제가 있었고, 나는 어떤 시도를 했는지DFS 인줄 알았는데 BFS가 더 효율적이라고함 - 어떻게 해결했는지BFS는 레벨별로 탐색하므로 처음 도달한 거.. 2025. 5. 22. 코테 스터디 31일차 TIL + 오늘의 학습 키워드 선형탐색 - 오늘의 학습 키워드 선형탐색- 공부한 내용 본인의 언어로 정리하기정렬된 겹치지 않는 간격으로 새로운 간격을 삽입하고 병합한다. 이때 사용되는 알고리즘은 선형탐색이다. function insert(intervals, newInterval): result =[] i=0 n=intervals의 길이 #1. newInterval 보다 완전히 앞에있는 간격들을 결과에 추가 while i- 오늘의 회고 - 어떤 문제가 있었고, 나는 어떤 시도를 했는지interval을 (x,y) 정도의 개념으로 생각하고 문제 풀었음범위가 겹쳐지면 merge 하는거여서 newInterval 보다 완전 작은 범위 겹쳐지는 범위-> merge훨씬 큰 범위로 나눠야하는데 완전 작은 범위가 왜 남는지 이해를 .. 2025. 5. 21. 코테 스터디 30일차 TIL + 오늘의 학습 키워드 Dynamic Programming - 오늘의 학습 키워드 동적 계획법- 공부한 내용 본인의 언어로 정리하기동적 계획법 dynamic programming 이전 계산 결과를 저장하고 활용하여 중복 계산을 피한다.Kadane's 알고리즘1. 선택지 1-1.각 위치에서 현재 원소부터 새로운 배열 시작하기 or 1-2.이전 부분 배열에 현재 원수 추가하기2. 각 단계에서 지금까지의 최대합을 기록 수도코드function maxSubArray(nums): 현재까지의 최대 합 = nums[0] 전체 최대 합 = nums[0] for i = 1 to nums.length-1: 현재까지의 최대 합 = max(nums[i], 현재까지의 최대 합 + nums[i]) 전체 최대 합 = max(전체 최.. 2025. 5. 15. 이전 1 2 3 4 ··· 8 다음