전체 글
-
문제 이름 : 다단계 칫솔 판매 문제 내용이 길어 링크로 첨부합니다. https://programmers.co.kr/learn/courses/30/lessons/77486 function solution(enroll, referral, seller, amount) { let graph = Array.from(Array(enroll.length), () => Array()); let money = Array.from(Array(enroll.length), () => Array()); // 저는 bfs 형식을 사용했지만 단방향 상승밖에 없기 때문에 // dfs를 사용하여도 전혀 상관 없습니다. const upToCenter = (name, amount) => { const startIdx = enroll.i..
[Programmers] 다단계 칫솔 판매 문제 - (javascript)문제 이름 : 다단계 칫솔 판매 문제 내용이 길어 링크로 첨부합니다. https://programmers.co.kr/learn/courses/30/lessons/77486 function solution(enroll, referral, seller, amount) { let graph = Array.from(Array(enroll.length), () => Array()); let money = Array.from(Array(enroll.length), () => Array()); // 저는 bfs 형식을 사용했지만 단방향 상승밖에 없기 때문에 // dfs를 사용하여도 전혀 상관 없습니다. const upToCenter = (name, amount) => { const startIdx = enroll.i..
2022.05.02 -
문제 이름 : [1차] 추석 트래픽 function solution(lines) { let answer = 0; const array = []; let count = 0; /* HH:MM:SS.MILI GAP(s) 를 기준으로 값을 받아서 time을 mili초 단위로 변경시켜서 계산합니다. **중요한 것은 end 시간은 1초만큼 더해주어야 예제 2번과 같은 경우를해결할 수 있습니다. */ const changeTimes = (h, m, s, mili, gap) => { const time = ((Number(h)*3600)+(Number(m)*60)+Number(s))*1000+(Number(mili)); array.push([time-(Number(gap)*1000)+1, 'start']); array..
[Programmers] [1차] 추석 트래픽 문제 - (javascript)문제 이름 : [1차] 추석 트래픽 function solution(lines) { let answer = 0; const array = []; let count = 0; /* HH:MM:SS.MILI GAP(s) 를 기준으로 값을 받아서 time을 mili초 단위로 변경시켜서 계산합니다. **중요한 것은 end 시간은 1초만큼 더해주어야 예제 2번과 같은 경우를해결할 수 있습니다. */ const changeTimes = (h, m, s, mili, gap) => { const time = ((Number(h)*3600)+(Number(m)*60)+Number(s))*1000+(Number(mili)); array.push([time-(Number(gap)*1000)+1, 'start']); array..
2022.05.02 -
문제 번호 : 16234번 문제 바로가기 ☞ https://www.acmicpc.net/problem/16234 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().trim().split("\r\n"); const [N, L, R] = input[0].split(" ").map(Number); // 정사각형 땅 const array = []; // 몇번이나 이동했는지 let moveCount = 0; for (let i = 0; i < N; i++) { array.push(input[i..
[BaekJoon] 16234 번 인구 이동 문제 - (nodejs)문제 번호 : 16234번 문제 바로가기 ☞ https://www.acmicpc.net/problem/16234 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().trim().split("\r\n"); const [N, L, R] = input[0].split(" ").map(Number); // 정사각형 땅 const array = []; // 몇번이나 이동했는지 let moveCount = 0; for (let i = 0; i < N; i++) { array.push(input[i..
2022.04.27 -
문제 이름 : 기능개발 function solution(progresses, speeds) { let answer = {}; let maxValue = 0; progresses.map((el,idx)=> { const need = (100-el) % speeds[idx] === 0 ? (100-el)/speeds[idx] : Math.floor((100-el)/speeds[idx])+1; maxValue = Math.max(maxValue, need); answer[maxValue] = (answer[maxValue] || 0) +1; }) return Object.values(answer); } * 100에서 현재 진행된 기능을 빼고 이를 이용해 남은 일자를 구해줍니다. 이 일자는 앞보다 작을 수 없다..
[Programmers] 기능개발 문제 - (javascript)문제 이름 : 기능개발 function solution(progresses, speeds) { let answer = {}; let maxValue = 0; progresses.map((el,idx)=> { const need = (100-el) % speeds[idx] === 0 ? (100-el)/speeds[idx] : Math.floor((100-el)/speeds[idx])+1; maxValue = Math.max(maxValue, need); answer[maxValue] = (answer[maxValue] || 0) +1; }) return Object.values(answer); } * 100에서 현재 진행된 기능을 빼고 이를 이용해 남은 일자를 구해줍니다. 이 일자는 앞보다 작을 수 없다..
2022.04.24 -
문제 이름 : 최고의 조합 function solution(n, s) { const middleValue = Math.floor(s / n); if (middleValue === 0) return [-1]; const upCaseCount = s % n; let answer = new Array(n).fill(middleValue); for (let i = 0; i < upCaseCount; i++) { answer[answer.length - 1 - i]++; } return answer; } * 고민을 좀 하면 간단한 문제다. 곱셈해서 가장 높은 수가 되어야 하는데 그럼 최대한 중간에 가까운 수만 모여있어야 한다. 그러면 s를 n으로 나눠 내림한 수가 중간 수가 되고, 나머지만큼만 각각 +1해주면 총..
[Programmers] 최고의 조합 문제 - (javascript)문제 이름 : 최고의 조합 function solution(n, s) { const middleValue = Math.floor(s / n); if (middleValue === 0) return [-1]; const upCaseCount = s % n; let answer = new Array(n).fill(middleValue); for (let i = 0; i < upCaseCount; i++) { answer[answer.length - 1 - i]++; } return answer; } * 고민을 좀 하면 간단한 문제다. 곱셈해서 가장 높은 수가 되어야 하는데 그럼 최대한 중간에 가까운 수만 모여있어야 한다. 그러면 s를 n으로 나눠 내림한 수가 중간 수가 되고, 나머지만큼만 각각 +1해주면 총..
2022.04.21 -
문제 이름 : 피로도 function solution(k, dungeons) { let answer = -1; let visited = new Array(dungeons.length).fill(false); const bfs = (k, count) => { answer = Math.max(answer, count); for (let i = 0; i = minNeed && !visited[i]) { visited[i] = true; bfs(k - consume, count + 1); visited[i] = false; } } }; bfs(k, 0); return answer; ..
[Programmers] 피로도 문제 - (javascript)문제 이름 : 피로도 function solution(k, dungeons) { let answer = -1; let visited = new Array(dungeons.length).fill(false); const bfs = (k, count) => { answer = Math.max(answer, count); for (let i = 0; i = minNeed && !visited[i]) { visited[i] = true; bfs(k - consume, count + 1); visited[i] = false; } } }; bfs(k, 0); return answer; ..
2022.04.21