[알고리즘 ]DFS 경로 탐색 경우의 수-인접행렬 with javascript
문제설명 방향그래프가 주어지면 1번 정점에서 n번 정점으로 가는 모든 경로의 가지 수를 출력하는 프로그램을 작성하세요. 예시) 1번정점에서 5번 정점까지 가는 경우의 수는 1->2->3->4->5 1->2->5 1->3->4->2->5 1->3->4->5 1->4->2->5 1->4->5 총 6가지이다. 입출력예시 총 가지수를 출력한다. let arr = [[1,2],[1,3],[1,4],[2,1],[2,3],[2,5],[3,4],[4,2],[4,5]]; console.log("리턴값 :", countDfs(5,arr)); 코드 function countDfs(n, arr) { let count = 0; let graph = Array.from(Array(n + 1), () => Array(n + 1)...
2021. 6. 24.
[프로그래머스 1단계] 가장 작은수 제거하기 with javascript
문제설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 주의사항 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다 입출력예시 코드 function solution(arr) { if(arr.length === 0) return -1 if(arr.length === 1) return [-1] let minIdx = arr.indexOf(Math.min(...arr)); arr.splice(minIdx,1..
2021. 6. 23.
[프로그래머스 1단계] 최대공약수와 최소공배수 구하기_유클리드 호제법
문제설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 주의사항 두 수는 1이상 1000000이하의 자연수입니다. 입출력예시 코드 function solution(n, m) { return [ gcd(n,m), (n*m) / gcd(n,m)] } function gcd(a, b) { // 단, a가 b보다 커야함. let R; while ((a % b) > 0) { R = a % b; //나머지 a = b; b = R; } return b; } ..
2021. 6. 23.