전체 글

https://school.programmers.co.kr/learn/courses/30/lessons/77486코드function solution(enroll, referral, seller, amount) { const profits = {}; for (const name of enroll) { profits[name] = 0; } const parent = {}; for (let i = 0; i 0) { const distribute = Math.floor(profit * 0.1); const keep = profit - distribute; profits[sellerName] += keep; if (distribute === 0) break; ..
https://school.programmers.co.kr/learn/courses/30/lessons/49994코드function solution(dirs) { let answer = 0; const direction = { U: [-1, 0], D: [1, 0], R: [0, 1], L: [0, -1], }; let position = [0, 0]; const visited = new Set(); for (const d of dirs) { const [x, y] = position; const nx = position[0] + direction[d][0]; const ny = position[1] + direction[d][1]; if (nx 5..
https://school.programmers.co.kr/learn/courses/30/lessons/340212코드function solution(diffs, times, limit) { let answer = 0; const check = (level) => { const requireTime = [times[0]]; for (let i = 1; i 0) { const len = requireTime.length; requireTime[len - 1] += gap * (times[i] + times[i - 1]); } } const total = requireTime.reduce((acc, cur) => acc + cur, 0); r..
https://school.programmers.co.kr/learn/courses/30/lessons/132266코드 (BFS)function solution(n, roads, sources, destination) { const graph = Array.from(new Array(n + 1), () => []); for (const [a, b] of roads) { graph[a].push(b); graph[b].push(a); } const q = [destination]; const dist = new Array(n + 1).fill(Number.MAX_SAFE_INTEGER); dist[destination] = 0; while (q.length > 0) { cons..
·문제풀이/DP
https://school.programmers.co.kr/learn/courses/30/lessons/161988?language=javascript코드function solution(sequence) { let answer = Number.NEGATIVE_INFINITY; let odd = 0; let even = 0; for (let i = 0; i 처음에는 1로 시작하는 펄스 수열을 곱하는 경우와 -1로 시작하는 펄스 수열을 곱하는 경우 2가지로 나누어서 투포인터 알고리즘을 사용하려고 했는데, 20점만 맞고 틀렸다...다시 생각해보다가 모르겠어서 찾아보니 카데인 알고리즘을 사용하면 된다고 나왔다. 카데인 알고리즘에 대한 자세한 설명은 아래에 있다. Kadane’s Algorithm (카데..
·문제풀이/MST
https://school.programmers.co.kr/learn/courses/30/lessons/42861코드function solution(n, costs) { let answer = 0; const parent = []; for (let i = 0; i { if (x !== parent[x]) { parent[x] = findParent(parent[x]); } return parent[x]; }; const union = (a, b) => { const aParent = findParent(a); const bParent = findParent(b); if (aParent === bParent) return false; if (aPar..
딜레이레이
개발새발