[알고리즘/javascript] 바코드
문제 1, 2, 3으로만 이루어진 수열 바코드를 만들어야 합니다. 무조건 1, 2, 3만 붙여서 바코드를 만들었다면 쉬웠겠지만, 아쉽게도 바코드를 만드는 데에 조건이 걸려 있습니다. 바코드에서 인접한 두 개의 부분 수열이 동일하다면 제작할 수 없다고 할 때, 주어진 길이 len의 바코드 중 가장 작은 수를 반환하는 함수를 작성하세요. 만들 수 없는 바코드 만들 수 있는 바코드 112 1312 1231312 3 232312 231213 부분 수열? 주어진 수열에서 연속된 모든 구간을 말합니다. 수열 123의 부분 수열은 1, 2, 3, 12, 23, 123 입니다. 인접한 두 부분 수열? 첫번째 부분 수열과 두번째 부분 수열이 연속된 경우를 말합니다. 수열 1234에서 인접한 부분 수열 (우리는 두 부분수..
[알고리즘/javascript][DFS / BFS] 연결된 정점들
연결된 정점들 문제 방향이 없는 간선들의 목록이 주어질 때, 연결된 정점의 컴포넌트(그룹들)가 몇 개인지 반환하는 함수를 작성하세요. 입력 인자 1: edges 2차원 Array 타입을 요소로 갖는 시작과 도착 정점이 담겨있는 배열들을 담고 있는 목록 (2차원 배열, 정수 요소) ex) [[0, 1], [1, 2], [3, 4]] 출력 Number 타입을 리턴해야 합니다. 연결된 정점의 컴포넌트의 수를 숫자로 반환합니다. 주의 사항 주어진 간선은 무향입니다. [1, 2] 는 정점 1에서 정점 2로도 갈 수 있으며, 정점 2에서 정점 1로도 갈 수 있습니다. 입출력 예시 const result = connectedVertices([ [0, 1], [2, 3], [4, 5], ]); console.log(r..
[알고리즘/javascript][Graph] 인접 행렬 길찾기
인접 행렬 길찾기 문제 주어진 인접행렬에서 한 정점으로부터 다른 정점으로 이어지는 길이 존재하는지 반환해야 합니다. 입력 인자 1: matrix Array 타입을 요소로 갖는 인접 행렬이 담긴 2차원 배열 인자 2: from Number 타입의 시작 정점 인자 3: to Number 타입의 도착 정점 출력 boolean 타입을 리턴해야 합니다. 입출력 예시 const result = getDirections( [ [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 1, 0, 0], ], 0, 2 ); console.log(result); // true // 정점 0에서 2로 가는 길이 존재하는지 확인합니다. // 0 --> 1 로 가는 간선이 존재하고, 1 --> 2 로 가..
[알고리즘/javascript]uglyNumbers
문제 아래와 같이 정의된 ugly numbers 중 n번째 수를 리턴해야 합니다. ugly number는 2, 3, 5로만 나누어 떨어지는 수이다. 1은 1번째 ugly number 이다. 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, ... 입력 인자 1 : n number 타입의 자연수 (n >= 1) 출력 number 타입을 리턴해야 합니다. 주의사항 ugly numbers를 배열에 저장했을 때, n번째 ugly number의 위치는 인덱스 n-1 입니다. 입출력 예시 let result = uglyNumbers(1); console.log(result); // --> 1 result = uglyNumbers(3); console.log(result); // --> 3 Ad..
[알고리즘/javascript] getItemFromTwoSortedArrays
문제 길이가 m, n이고 오름차순으로 정렬되어 있는 자연수 배열들을 입력받아 전체 요소 중 k번째 요소를 리턴해야 합니다. 입력 인자 1 : arr1 자연수를 요소로 갖는 배열 arr1.length는 m 인자 2 : arr2 자연수를 요소로 갖는 배열 arr2.length는 n 인자 3 : k number 타입의 0 이상의 정수 출력 number 타입을 리턴해야 합니다. 주의사항 두 배열의 길이의 합은 1,000,000 이하입니다. 어떤 배열 arr의 k번째 요소는 arr[k-1]을 의미합니다. 입출력 예시 let arr1 = [1, 4, 8, 10]; let arr2 = [2, 3, 5, 9]; let result = getItemFromTwoSortedArrays(arr1, arr2, 6); cons..