코드스테이츠코플릿
-
Section4 Daily Coding 14_robotPath2공부/데일리코딩 2022. 8. 9. 09:14
문제 세로와 가로의 길이가 각각 M, N인 방의 지도가 2차원 배열로 주어졌을 때, 1은 장애물을 의미하고 0 이동이 가능한 통로를 의미합니다. 로봇은 한 번에 임의의 k칸 직진과 90도 회전 중 1가지 동작을 할 수 있다. 로봇의 현재 위치와 방향, 목표 지점과 방향이 함께 주어집니다. 이 때, 방향은 위쪽이 1, 오른쪽이 2, 아래쪽이 3, 왼쪽이 4로 주어집니다. 로봇이 목표 지점까지 도달해 목표 방향으로 회전하는 데 필요한 동작의 수를 리턴해야 합니다. 입력 인자 1 : room 배열을 요소로 갖는 배열 room.length는 M room[i]는 number 타입을 요소로 갖는 배열 room[i].length는 N room[i][j]는 세로로 i, 가로로 j인 지점의 정보를 의미 room[i][j..
-
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 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 17_quickSort공부/데일리코딩 2022. 7. 15. 09:36
문제 정수를 요소로 갖는 배열을 입력받아 오름차순으로 정렬하여 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 정수 arr.length는 100,000 이하 출력 number 타입을 요소로 갖는 배열을 리턴해야 합니다. 배열의 요소는 오름차순으로 정렬되어야 합니다. arr[i] [1, 3, 21] Advanced quickSort 함수의 두 번째 인자로 callback 함수를 받아서, 그 함수의 리턴값을 기준으로 요소들을 정렬해 보세요. Reference Code // naive solution // const quickSort = function (arr) { // if (arr.length