javascript
[JS 알고리즘] Toy 2 - fibonacci ( O(n) )
노션에서 마이그레이션 중이며, 순서는 랜덤하게 업로드하고 있습니다. 해당 문제는 코드스테이츠의 Toy problem을 출처로 합니다. 2022.03.30 문제 아래와 같이 정의된 피보나치 수열 중 n번째 항의 수를 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, .. 작성 코드 (Javascript) function fibonacci(n) { // TODO: 여기에 코드를 작성합니다. const fibo = (n, r) => { if (n 0) return r[n]; return r[n] = fibo(n-2, r) + fib..
[JS 알고리즘] Toy 1 - orderOfPresentation
노션에서 마이그레이션 중이며, 순서는 랜덤하게 업로드하고 있습니다. 해당 문제는 코드스테이츠의 Toy problem을 출처로 합니다. 2022.03.30 문제 말썽꾸러기 김코딩은 오늘도 장난을 치다가 조별 발표 순서가 담긴 통을 쏟고 말았습니다. 선생님께서는 미리 모든 발표 순서의 경우의 수를 저장해 놓았지만 김코딩의 버릇을 고치기 위해 문제를 내겠다고 말씀하셨습니다. 김코딩은 모든 조별 발표 순서에 대한 경우의 수를 차례대로 구한 뒤 발표 순서를 말하면 이 발표 순서가 몇 번째 경우의 수인지를 대답해야 합니다. 총 조의 수 N과 선생님이 말씀하시는 발표 순서 k가 주어질 때, 김코딩이 정답을 말 할 수 있게 올바른 리턴 값을 구하세요. 모든 경우의 수가 담긴 배열은 번호가 작을수록 앞에 위치한다고 가정..
[JS 알고리즘] Toy 15 - primePassword
노션에서 마이그레이션 중이며, 순서는 랜덤하게 업로드하고 있습니다. 해당 문제는 코드스테이츠의 Toy problem을 출처로 합니다. 2022.04.20 문제 다음의 조건을 만족하면서 현재의 비밀번호('curPwd')를 새 비밀번호(newPwd)로 변경하는 데 필요한 최소 동작의 수를 리턴해야 합니다. 한 번에 한 개의 숫자만 변경가능하다. 4자리의 소수(prime)인 비밀번호로만 변경가능하다. 정리하면, 비밀번호가 계속 소수를 유지하도록 숫자 한 개씩을 바꿔갈 때 현재 비밀번호에서 새 비밀번호로 바꾸는 데 최소 몇 개의 숫자를 변경해야 하는지를 리턴해야 합니다. 입력 인자 1 : curPwd number 타입의 1,000 이상 9,999 이하의 자연수 인자 2 : newPwd number 타입의 1,0..
[JS 알고리즘] Toy 18 - getItemFromTwoSortedArrays (kth element of two sorted arrays)
해당 문제는 코드스테이츠의 Toy problem을 출처로 합니다. 문제 길이가 m, n이고 오름차순으로 정렬되어 있는 자연수 배열들을 입력받아 전체 요소 중 k번째 요소를 리턴해야 합니다. Advanced 단순히 처음부터 끝까지 찾아보는 방법(O(K)) 대신 다른 방법(O(logK))을 탐구해 보세요. 힌트 - 이진 탐색(binary search)을 응용하여 해결합니다. 입력 인자 1 : arr1 자연수를 요소로 갖는 배열 arr1.length는 m 인자 2 : arr2 자연수를 요소로 갖는 배열 arr2.length는 n 인자 3 : k number 타입의 0 이상의 정수 출력 number 타입을 리턴해야 합니다. 주의사항 두 배열의 길이의 합은 1,000,000 이하입니다. 어떤 배열 arr의 k번째..
[JS 알고리즘] Toy 22 - rotateMatrix
해당 문제는 코드스테이츠의 Toy problem을 출처로 합니다. 문제 2차원 N x N 배열을 시계 방향으로 90도 회전시킨 배열을 리턴해야 합니다. Advanced 세로와 가로의 길이가 각각 M, N인 2차원 M X N 배열을 시계방향으로 90도씩 K번 회전시킨 배열을 리턴해 보세요. 회전수가 두 번째 입력으로 주어집니다. 입력 인자 1 : matrix 가로 길이(matrix[i].length)와 세로 길이(matrix.length)가 모두 N인 2차원 배열 matrix[i][j]는 number 타입 출력 2차원 배열을 리턴해야 합니다. 문제풀이 N*M (가로N, 세로M으로 가정하여 구현했다) 직사각형 행렬은 회전시 크기가 달라지기 때문에 결과배열의 크기를 미리 지정하여 초기화하는 방법은 비효율적인 ..