본문 바로가기
반응형

알고리즘42

[LeetCode] 125_Palindrome 처음 풀이 문제 링크 125_Valid Palindrome ☁︎ 처음 풀이 var isPalindrome = function (s) { s = s.toUpperCase(); let ans = []; for (let i = 0; i = 'A' && s[i] = '0' && s[i] 2021. 12. 7.
[LeetCode] 28_ImplementstrStr -JavaScript 문제 링크 : 28_ImplementstrStr string 문제 haystack과 needle이 주어졌을 때 needle이 haystack에 있는지 확인하고 있으면 해당 idx를 없으면 -1을 return한다. ☁︎ 처음 풀이 var strStr = function (haystack, needle) { let needleLen = needle.length; for (let i = 0; i < haystack.length; i++) { if (haystack[i] === needle[0]) { if (haystack.substring(i, i + needleLen) === needle) return i; } } } haystack의 개수만큼 for문을 돌며 그 첫 글자가 같다면 needle의길이만틈의 문.. 2021. 12. 2.
[LeetCode] 64 _ minimumPathSum 나의 풀이 var minPathSum = function (grid) { let mLen = grid.length; let nLen = grid[0].length; const DP = [...new Array(mLen)].map(() => []); DP[0][0] = grid[0][0]; for (let i = 0; i < mLen; i++) { for (let j = 0; j < nLen; j++) { if (i === 0 && j === 0) DP[i][j] = grid[i][j]; // 우측 방향 else if (j === 0) DP[i][j] = grid[i][j] + DP[i - 1][j]; // 하단 방향 else if (i === 0) DP[i][j] = grid[i][j] + DP[i][j.. 2021. 11. 23.
[LeetCode] 746 Min Cost Climbing Stairs-javascript 나의 풀이 var minCostClimbingStairs = function(cost) { const goalStair = cost.length let DP=[] DP[0] = 0; DP[1] = 0; DP[2] = Math.min(cost[0],cost[1]) for (let i=3 ; i 2021. 11. 20.
[백준] node.js/ 2606_바이러스 이번 문제는 쉽지 않았다. dfs를 이용해 풀이하는 문제였고, 나는 dfs에 아직 약하기 때문에 더 많이 공부해야 한다ㅏ. 정답 풀이 n+1을 하는 이유는 인덱스와 수를 맞춰주기 위해서! ( 0 idx의 값은 쓰지 않는다고 보면 된다.) const fs = require('fs'); let input = (fs.readFileSync('./dev/stdin') + '').toString().trim().split('\n'); let n = Number(input.shift()); let m = Number(input.shift()); let graph = [...new Array(n + 1)].map(() => []); let visited = new Array(n + 1).fill(false); let.. 2021. 11. 7.
[백준] node.js/ 1463_1로 만들기 문제를 보자마자 느낌이 왔다. 아 이거.. 알고리즘이 필요하다!!!!! 처음에는 3부터 나누고, 2부터나눋고 -1 하면 되지 라고 생각했는데 천만의 말씀~ 힌트에 떡하니 나와 있는 가르침을 보고 바로 돌렸다. 참고 풀이 const fs = require('fs'); let n = (fs.readFileSync('./dev/stdin') + '').toString().trim(); n = Number(n); const DP = new Array(n + 1).fill(0); for (let i = 2; i 2021. 10. 27.
백준] node.js/ 1448_ 삼각형 만들기 내 풀이 (시간초과) const fs = require('fs'); let input = (fs.readFileSync('./dev/stdin') + '').toString().trim().split('\n'); const n = +input.shift(); let sumArr = []; input = input.map((line) => parseInt(line)); input.sort((a, b) => parseInt(b) - parseInt(a)); const checkTri = (a, b, c) => { return a < b + c; }; for (let i = 0; i < n - 2; i++) { if (checkTri(input[i], input[i + 1], input[i + 2])) { a.. 2021. 10. 23.
[백준] node.js/ 1748_ 수 이어쓰기(1) 내풀이 const fs = require('fs'); let input = (fs.readFileSync('./dev/stdin') + '').toString().trim(); const lenInput = input.length; let cnt = 0; // 1 2 3 // 10-1 100-10 + 120-(100-1) for (let i = 1; i 2021. 10. 22.
[백준] node.js/ 15650 N과M(2) 내 풀이 const fs = require('fs'); let [n, m] = (fs.readFileSync('./dev/stdin') + '').toString().trim().split(' '); let visit = new Array(parseInt(n)).fill(false); n = parseInt(n); m = parseInt(m); let ans = []; const back = (d, n, m, idx) => { if (d === m) { console.log(...ans); return; } for (let i = idx; i < n; i++) { if (visit[i]) continue; visit[i] = true; ans.push(i + 1); back(d + 1, n, m, i);.. 2021. 10. 21.
반응형