코드스테이츠데일리코딩
-
Section4 Daily Coding 15_largestRectangularArea카테고리 없음 2022. 8. 10. 09:04
문제 히스토그램(histogram)은 표(도수 분포표, 빈도표)로 되어 있는 도수 분포(frequency distribution)를 정보 그림으로 나타낸 것입니다. 예를 들어, 대학교의 한 학과에서 신입생들의 현재 거주 지역을 조사한 결과가 다음과 같다고 가정해 봅시다. 서울 2명, 경기 1명, 대전 4명, 부산 5명, 대구 1명, 광주 3명, 제주도 3명... 이 자료를 히스트그램으로 나타내면 각각 높이 2, 1, 4, 5, 1, 3, 3인 직사각형이 왼쪽부터 그려지게 됩니다. 편의상 직사각형의 너비는 1이라고 가정합니다. 이를 그림으로 나타내면 아래와 같습니다. 6 | 5 | x 4 | x x 3 | x x x x 2 | x x x x x 1 | x x x x x x x ----------------..
-
Section4 Daily Coding 13_spiralTraversal공부/데일리코딩 2022. 8. 8. 09:04
문제 2차원 M x N 배열을 나선형(spiral)으로 순회해야 합니다. 입력 인자 1 : matrix 세로 길이(matrix.length)가 M, 가로 길이(matrix[i].length)가 N인 2차원 배열 matrix[i]는 string 타입을 요소로 갖는 배열 matrix[i][j].length는 1 출력 string 타입을 리턴해야 합니다. 주의사항 순회는 좌측 상단 (0,0)에서 시작합니다. 배열의 모든 요소를 순서대로 이어붙인 문자열을 리턴해야 합니다. 입출력 예시 let matrix = [ ['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I'], ]; let output = spiralTraversal(matrix); console.log(output); ..
-
Section4 Daily Coding 10_primePassword (optional)공부/데일리코딩 2022. 8. 3. 09:04
문제 다음의 조건을 만족하면서 현재의 비밀번호('curPwd')를 새 비밀번호(newPwd)로 변경하는 데 필요한 최소 동작의 수를 리턴해야 합니다. 한 번에 한 개의 숫자만 변경가능하다. 4자리의 소수(prime)인 비밀번호로만 변경가능하다. 정리하면, 비밀번호가 계속 소수를 유지하도록 숫자 한 개씩을 바꿔갈 때 현재 비밀번호에서 새 비밀번호로 바꾸는 데 최소 몇 개의 숫자를 변경해야 하는지를 리턴해야 합니다. 입력 인자 1 : curPwd number 타입의 1,000 이상 9,999 이하의 자연수 인자 2 : newPwd number 타입의 1,000 이상 9,999 이하의 자연수 출력 number 타입을 리턴해야 합니다. 주의사항 4자리인 소수는 1,000 이상의 소수를 말합니다.(0011, 09..
-
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 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..