본문 바로가기

BEB/algorithm38

47_Dijkstra function Dijkstra(num, edges, start, end) { let fix = new Array(102).fill(0); //고정되었는지 let d = new Array(102).fill(1234567); //거리 let adj = {};//이렇게하고 바로 push를 하지 못하기때문에 for(let i=1;i 2023. 1. 22.
48_FloydWarshall function FloydWarshall(num, edges) { let adj = Array.from(Array(num+2), () => Array(num+2).fill(123456789)); //그래프 let res = Array.from(Array(num), () => Array(num).fill(0)) //결과를 출력할 배열 for(let i=0;i 2023. 1. 19.
46_0-1Knapsack 이론은 https://cocoon1787.tistory.com/206 이거 보시면 편하실거에요! 이론이 너무 어렵습니다 ㅠㅠㅠ const knapsack = function (weight, items) { let d = Array.from(Array(items.length+1), () => Array(weight+1).fill(0)) items.unshift([0,0]); //[[0,0], [10,60], [20,100], [30,120]] 이런식으로 오게하기 위해 넣은것 for(let i=1; i 2023. 1. 15.
45_subsetSum 45_subsetSum 이건 무조건 더 효율적인 방법이 있을 것 같다 무조건 시간초과같은거 날것같았는데 안나서 신기했다 const subsetSum = function (set, bound) { let res=0; let ans=0; set.sort((a,b)=>b-a); //역순정렬함. [15, 8, 3, 1] for(let i=0;i 2023. 1. 9.
41_countIslands BFS로 풀 수 있는 기본 유형의 문제였다 const countIslands = function (grid) { if(grid.length===0) return 0; let n = grid.length; let m = grid[0].length; let vis = Array.from(Array(n), () => Array(m).fill(0)) //방문했는지를 나타내는 2차원배열 let dx = [0,1,0,-1]; //상하좌우 let dy = [1,0,-1,0]; //상하좌우 let Q = []; //큐 let count = 0; //섬의 개수 for(let i=0;i 2022. 12. 22.
40_longestPalindrome 가장긴 팰린드롬 let longestPalindrome = function (str) { const isPalindrome = function(s, left, right) { //앞뒤가 같은 팰린드롬인지 확인 while(left >= 0 && right < s.length) { if(s[left] !== s[right]) break; left--; right++; } return right-left-1; } const solution = function (s) { let res = 0; for(let i=0;i 2022. 12. 20.