공부/데일리코딩
-
Section4 Daily Coding 07_rangeMinimum공부/데일리코딩 2022. 7. 29. 09:19
문제 정수를 요소로 갖는 배열과 특정 구간을 입력받아, 해당 구간 내에서 최소값을 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr.length는 500,000 이하 arr[i]는 -100,000 이상 100,000 이하의 정수 인자 2 : ranges number 타입을 요소로 갖는 배열 ranges.length는 10,000 이하 ranges[i]는 특정 구간을 의미 ranges[i][0]은 i번째 구간의 시작 인덱스 ranges[i][1]은 i번째 구간의 마지막 인덱스 출력 배열(arr)를 리턴해야 합니다. (입출력 예시 참고) arr[i]는 i번째 구간(ranges[i])의 최소값 입출력 예시 const arr = [1, 3, 2, 7, 9, 11]; cons..
-
Section4 Daily Coding 06_heapSort공부/데일리코딩 2022. 7. 28. 09:12
문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 -100,000 이상 100,000 이하의 정수 arr.length는 100,000 이하 출력 number 타입을 요소로 갖는 배열을 리턴해야 합니다. 주의사항 힙 정렬을 구현해야 합니다. arr.sort 사용은 금지됩니다. 입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다. 최소 힙(min heap)을 구현해야 합니다. 최소 힙 구현을 위해 선언된 함수들(getParentIdx, insert, removeRoot)을 전부 완성해야 합니다. swap, getParentIdx, insert, removeRoot를 전부 사용해야 합니다. swap,..
-
Section4 Daily Coding 05_binaryHeap공부/데일리코딩 2022. 7. 27. 09:08
문제 정수를 요소로 갖는 배열을 입력받아 이진 힙(binary heap)*을 리턴해야 합니다. 이진 힙(binary heap)은 노드의 값이 특정한 순서를 가지고 있는 완전 이진 트리(Complete Binary Tree)입니다. 완전 이진 트리는 이진 트리의 (마지막 레벨 또는 마지막 깊이를 제외하고) 모든 레벨이 노드로 가득 채워져 있어야 합니다. 마지막 레벨은 왼쪽부터 차례대로 채워져 있습니다. 이진 힙에서 부모 노드의 값이 (이진 트리이므로 2개의) 자식 노드의 값보다 큰 경우를 최대 힙(max heap), 반대의 경우를 최소 힙(min heap)이라고 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 -100,000 이상 100,000 이하의 정수 arr.le..
-
Section4 Daily Coding 04_gossipProtocol공부/데일리코딩 2022. 7. 26. 09:05
문제 세로와 가로의 길이가 각각 M, N인 마을지도가 배열로 주어졌을 때, '1'은 주민이 있는 집을 의미하고 '0'은 주민이 없는 땅을 의미합니다. 이 마을은 소문이 시작되면 하루에 상하좌우 한 칸 바로 옆에 있는 집으로 퍼집니다. 특정 주민의 집 (R, C)으로부터 어떤 소문이 시작될 경우, 마을 전체로 소문이 퍼지는데 걸리는 시간(일)을 리턴해야 합니다. 입력 인자 1 : village string 타입을 요소로 갖는 배열 village.length는 M village[i]는 string 타입 village[i].length는 N village[i][j]는 세로로 i, 가로로 j인 지점의 정보를 의미 village[i][j]는 '0' 또는 '1' 인자 2: row number 타입의 0 이상의 정수..
-
Section4 Daily Coding 03_LSCS공부/데일리코딩 2022. 7. 25. 08:59
문제 정수를 요소로 갖는 배열을 입력받아 다음의 조건을 만족하는 LSCS*를 리턴해야 합니다. LSCS: 주어진 배열의 연속된 부분 배열*의 합을 구한다고 할 때, 이 중 가장 큰 값(Largest Sum of Contiguous Subarray) 연속된 부분 배열들: 배열 [1,2,3]의 연속 부분 배열은 [1], [1, 2], [1, 2, 3], [2], [2, 3], [3] 입니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr.length는 60,000 이하 arr[i]는 -100,000 이상 100,000 이하의 정수 출력 number 타입을 리턴해야 합니다. 주의사항 배열의 모든 요소가 음수인 경우도 있습니다. 입출력 예시 let output = LSCS([1, 2, 3..
-
Section4 Daily Coding 02_robotPath공부/데일리코딩 2022. 7. 22. 09:19
문제 세로와 가로의 길이가 각각 M, N인 방의 지도가 2차원 배열로 주어졌을 때, 1은 장애물을 의미하고 0 이동이 가능한 통로를 의미합니다. 로봇은 지도 위를 일분에 한 칸씩 상하좌우로 이동할 수 있습니다. 로봇의 위치와 목표 지점이 함께 주어질 경우, 로봇이 목표 지점까지 도달하는 데 걸리는 최소 시간을 리턴해야 합니다. 입력 인자 1 : room 배열을 요소로 갖는 배열 room.length는 M room[i]는 number 타입을 요소로 갖는 배열 room[i].length는 N room[i][j]는 세로로 i, 가로로 j인 지점의 정보를 의미 room[i][j]는 0 또는 1 인자 2 : src number 타입을 요소로 갖는 배열 src.length는 2 src[i]는 0 이상의 정수 src..
-
Section4 Daily Coding 01_radixSort공부/데일리코딩 2022. 7. 21. 09:09
문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 0 이상의 정수 arr.length 100,000 이하 출력 number 타입을 요소로 갖는 배열을 리턴해야 합니다. 배열의 요소는 오름차순으로 정렬되어야 합니다. arr[i] [1, 3, 21] 힌트 기수 정렬(radix sort)은 내부적으로 계수 정렬(counting sort)을 사용합니다. 계수 정렬을 먼저 학습하고, 어떤 경우에 기수 정렬을 사용하는지 학습하도록 합니다. Advanced arr[i]의 범위가 정수 전체로 확대될 경우, 기수 정렬 알고리즘을 완성해 보세요. Reference Code function getMax(arr) { r..
-
Section3 Daily Coding 18_mergeSort공부/데일리코딩 2022. 7. 18. 09:19
문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 정수 arr.length 100,000 이하 출력 number 타입을 요소로 갖는 배열을 리턴해야 합니다. 배열의 요소는 오름차순으로 정렬되어야 합니다. arr[i] [1, 3, 21] 힌트 병합 정렬은 표준 라이브러리에서 정렬을 구현할 때 퀵 정렬이나 힙 정렬의 대안으로 사용하는 최적화된 정렬 알고리즘입니다. 병합 정렬은 다음과 같은 알고리즘을 사용합니다. N의 길이를 가진 배열 리스트를 1의 길이를 가진 "부분 리스트"가 N개 모인 것으로 취급합니다. 인접한 부분 리스트들을 정렬하여 2의 길이를 가진 부분 리스트로 병합합니다. 2의 길이를 가진 ..