본문 바로가기

Javascript 알고리즘6

[Algorithm] 두 배열에서 k 번째 수 찾기 Javascript(getItemFromTwoSortedArrays 알고리즘) 문제 길이가 m, n이고 오름차순으로 정렬되어 있는 두개의 배열이 주어진다. 각 배열은 자연수로 이루어져 있고, 두 배열을 합친 전체 배열에서 k 번째 요소를 출력한다. 입력 자연수를 요소로 가지는 배열 arr1 arr1.length는 m 자연수를 요소로 가지는 배열 arr2 arr2.length는 n k number 타입의 0 이상 정수 출력 nubmer 타입 주의사항 두 배열의 합은 1,000,000 이하 입출력 예시 let arr1 = [1, 4, 8, 10]; let arr2 = [2, 3, 5, 9]; let result = getItemFromTwoSortedArrays(arr1, arr2, 6); console.log(result); // --> 8 arr1 = [1, 1, 2, 10]; a.. 2022. 6. 18.
[Algorithm] 바코드 문제 DFS 알고리즘 기초 Javascript 문제 1,2,3 으로만 구성된 수열 바코드를 생성해야 한다. 무조건 1,2,3만 붙여서 바코드를 만들면 쉽겠지만, 조건이 붙어있다. 바코드에서 인접한 두개의 부분 수열이 동일한 경우 바코드로 제작할 수 없다. 입력값으로는 바코드의 길이 len이 주어진다. 생성 가능한 바코드 중 가장 작은 바코드를 반환하라. 생성 불가능한 바코드 112 12311231 123131 1212 부분 수열이란 주어진 수열에서 연속된 모든 구간을 의미한다. 인접한 두 부분 수열이란 첫번째 부분 수열과 두번째 부분 수열이 연속된 경우를 의미한다. 자릿수에 상관없이 인접한 부분 수열이 같은 경우 바코드를 생성할 수 없다. 출력 예시 let output = barcode(3); console.log(output); // "121" o.. 2022. 5. 25.
[Algorithm] 시간복잡도 개선 부분집합 문제 문제 두개의 배열 base, sample을 입력받아 sample이 base의 부분 집합인지 여부를 확인 후 boolean값을 반환하라. base, sample 배열은 number 타입 요소를 가진다. 제약조건 base.length > 70,000 sample.length > 70,000 소스코드 구현 첫번째 솔루션 시간복잡도를 고려하지 않는다면 단순하게 문제를 풀 수 있다. 두개의 반복문을 순회하면서 sample의 요소와 base 요소를 비교하면서 결과값을 result 배열에 담아 출력하면 된다. const isSubsetOf = function (base, sample) { let result = new Array(sample.length).fill(false); for(let i=0; ia-b); ②.. 2022. 5. 24.
[Algorithm] Queue 알고리즘 Printer Spooler 구현하기 문제 Queue 자료구조의 대표적인 활용 사례는 프린터 스풀러다. 출력할 문서들은 Printer Buffer에 차례대로 저장되고, 먼저 저장된 문서부터 출력이 시작된다. 입력으로는 bufferSize, capacities, 문서로 구성된 배열인 documents 3가지가 주어진다. 인쇄할 문서의 크기가 나열된 배열 documents가 모두 인쇄되는데 걸리는 최소 시간을 반환하라. 제한사항 인쇄 작업 목록은 칸으로 이루어져 있음 각 칸에는 한개의 문서만 위치가능 문서는 1초에 한 칸씩만 움직일 수 있음 인쇄 작업 목록의 크기는 bufferSize고 최대 용량 capacities 만큼 문서를 담을 수 있음 1 0 ){ count++; // Debugging console.log(` queue : ${queu.. 2022. 5. 24.
[Algorithm] Javascript 알고리즘, 프레젠테이션 순서 정하기 문제 문제 1 2022. 5. 22.
[Algorithm] 순열(Permutation) 경우의 수 구하는 알고리즘 문제(feat. 재귀(Recursion) 함수 사용) 문제 입력값으로 임의의 수 N(1 2022. 5. 20.