
코테이토 4기 알고리즘 스터디 - 9월 4주차 공통 과제 A 하샤드 🎈 문제 및 해석 입력 받은 수가 각 자리 수의 합으로 나누어 떨어진다면 True, 아니라면 False를 반환하는 함수를 만든다. 즉, 이 문제를 풀기 위해서는 각 자리 수의 합을 구하는 것이 중요하다. ✨ 문제 풀이 // JavaScript function solution(num) { let tmp = num; let digitSum=0; while(tmp){ digitSum += tmp%10 tmp = parseInt(tmp/10) } return (num%digitSum==0); } # python def solution(num): tmp = num; digit_sum = 0 while(tmp): digit_sum += tmp%10..
매개변수 탐색 (Parametric Search) : 최적화 문제를 결정 문제로 바꾸어 푸는 것 ❓ 최적화 문제: 가장 최선의 값을 도출해내야하는 문제. 최대, 최소의 값을 요구하는 문제들이 이에 해당한다. ❓ 결정 문제: 결과가 참/거짓으로 나오는 문제 매개변수 탐색은 이진 탐색의 연장선에 있는 알고리즘으로, 이진 탐색 알고리즘에 대한 이해가 선요구된다. 이진 탐색에 대해 알고싶다면? 기본 아이디어 조건을 만족하는 수 가운데에서 최댓값을 찾기 위해서는 큰값부터, 최솟값을 찾기 위해서는 작은값부터 차근차근 선회하는 선형 탐색 알고리즘은 최적화 문제를 풀기에 가장 직관적으로 해결할 수 있는 알고리즘이다. 하지만 선형 탐색은 시간 복잡도가 O(n)으로 매우 비효율적이다. 그래서 등장한 것이 바로 매개변수 탐..

이진 탐색 알고리즘 (Binary Search) : 정렬된 배열의 중앙값이, 찾으려는 값과 같은지 확인하고 다르다면 두 값의 대소 관계에 따라 범위를 중간값의 좌/우측으로 좁혀가는 탐색 알고리즘. 정렬된 배열에서만 사용 가능 오름차순(내림차순)으로 순회하는 선형탐색 알고리즘은 O(N)만큼의 시간이 듦 그에 반해 이진 탐색 알고리즘은 시간복잡도가 O(logN)으로 훨씬 줄어듦. 메인 로직 1. 주어진 배열의 양 끝값을 low, high로 설정한 후 중앙값의 인덱스(j)을 찾는다. 2. target이 배열의 중앙값보다 작다면 high = j-1로, target이 배열의 중앙값보다 크다면 low = j+1로 재설정하여 범위를 변경한다. 3. target과 중앙값이 일치할 때까지 2.의 과정을 반복한다. 4. ..