목록Development/Algorithm (4)
JS Dev Blog
문제 설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에서 나머지는 무시합니다. 최솟값이 8보다 크면 -1을 return 합니다. 입출력 예Nnumberreturn 5 12 4..
pviot(중심축)을 정하고 중심축 보다 작은 값들은 왼쪽으로, 큰 값들은 오른쪽으로 보낸다. 이렇게 재귀적으로 pivot을 정해서 왼쪽 오른쪽을 나눠서 부분 리스트의 합이 전체 리스트가 되게 하는 방법이다. Divde and Conquer 알고리즘에 속한다. big O O(nlogn) const quickSort = function (arr, transform =(item)=> item) { // TODO: 여기에 코드를 작성합니다. if(arr.length
삽입정렬은 한 번에 한 항목씩 정렬 된 배열을 작성한다. 시간 복잡도 O(N^2) 장점 안정적인 정렬 알고리즘 배열이 대부분 정렬되어 있는 경우 매우 효율적 단점 배열 안의 요소들의 이동이 많다. 배열이 큰 경우 비효율 적이다. 예제 코드 const insertionSort = function (arr) { // TODO: 여기에 코드를 작성합니다. for ( let i =0; iarr[index]){ let temp = arr[index-1]; arr[index-1] = arr[index]; arr[index]=temp; index--; } } return arr; ..
그래프의 탐색은 하나의 정점에서 시작해서 모든 정점들을 한 번씩 탐색하는 것이 목적이다. 대표적인 방법 BFS, DFS는 데이터를 탐색하는 순서만 다를 뿐, 모든 자료를 하나씩 확인해 본다는 점은 같다. 장단점이 분명하기 떄문에 상황에 맞는 탐색 방법을 사용해야 한다. BFS(Breadth-First Search) 너비우선탐색. 가까운 정점부터 탐색한다. 주로 두 정점 사이의 최단 경로를 찾을 때 사용한다. 만약 경로를 하나씩 전부 방문한다면 최약의 경우에는 모든 경로를 다 살펴봐야 한다. DFS(Depth-Frist Search) 깊이 우선 탐색. 하나의 경로를 끝까지 탐색한 후, 찾는 정점이 없다면 다음 경로로 넘어가 탐색한다. 하나의 경로를 끝까지 들어가서 확인하고 다음으로 넘어가기 때문에 운이 좋..