일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 가천대
- Algorithm
- javascript
- 타입 챌린지
- 수학
- 백준
- TCP
- dp
- HTTP
- Crawling
- 프로그래머스
- dfs
- 타입스크립트
- 쉬운 문제
- HTTP 완벽 가이드
- 문자열
- 크롤링
- 레벨 1
- Nestjs
- 프로그래머스 레벨 2
- BFS
- socket
- Node.js
- 알고리즘
- type challenge
- 소켓
- 자바스크립트
- typescript
- ip
- 그래프
- Today
- Total
목록백준 (100)
kakasoo
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(line); rl.close(); }).on("close", () => { process.exit(); }); const gcd = (A, B) => { if (B === 0) { return A; } else { return gcd(B, A % B); } }; /** * * @param {string} line */ const main = (line) => { const [A, B] = line.split(" ").map(Nu..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(line); rl.close(); }).on("close", () => { process.exit(); }); /** * * @param {string} line */ const main = (line) => { const [A, B, C] = line.split(" ").map(Number); console.log((A + B) % C); console.log(((A % C) + (B % C)) % C); console.log..
꽤 어려웠다. // 백준 14501번 퇴사 문제를 풀었습니다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let count = 0; const input = []; rl.on("line", (line) => { if (count === 0) { count = Number(line); } else { input.push(line); if (input.length === count) { main(); rl.close(); } } }).on("close", () => { process.exit(); }); const main = ..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(line); rl.close(); }).on("close", () => process.exit()); /** * * @param {string} line */ const main = (line) => { const [N, K] = line.split(" ").map(Number); const DP = new Array(K + 1).fill(0); // DP[k][N] : k개로 N을 만드는 경우의 수 for (let i = 0; i
요즘 DP 문제만 주구장창 풀고 있는데, DP를 푸는 요령은 이렇다. 먼저 DP[n]이 의미하는 것이 무엇인지 찾는다. 이 문제에는 DP[n]의 정의는, n을 만들기 위해서 필요한 최소 제곱수 항이었다. DP[n]을 그러면 숫자들의 나열로 생각한다. ( 이 문제는 합이기 때문에 덧셈의 나열로 생각하면 된다. ) 거기서 마지막이 무엇인지 생각한다. 이 문제에서는 당연히, n의 제곱근이 될 것이다. 그렇다면 우리가 알 수 있는 게 생긴다. DP[n - 마지막 값의 제곱] + 1이 DP[n]이라는 점화식이다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process..
const readline = require("readline"); rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let cnt = 0; let count = 0; let clothes = 0; input = []; rl.on("line", (line) => { if (!count) { count = Number(line); } else { if (!isNaN(line - 0)) { clothes = Number(line); cnt++; if (clothes === 0) { console.log(0); } } else { input.push(line); if (input.length === clothes)..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let count = 0; rl.on("line", (line) => { if (!count) { count = Number(line); } else { main(line); rl.close(); } }).on("close", () => process.exit()); /** * * @param {string} line */ const main = (line) => { const numbers = line.split(" ").map(Number); const DP1 = [numbers..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let count = 0; rl.on("line", (line) => { if (!count) { count = Number(line); } else { main(line); } }); /** * * @param {string} line */ const main = (line) => { const numbers = line.split(" ").map(Number); const DP = new Array(numbers.length).fill(0); for (let i = 0; i < ..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(Number(line)); rl.close(); }).on("close", () => { process.exit(); }); /** * * @param {number} line */ const main = (line) => { const DP = new Array(line + 1).fill(0); DP[2] = 3; for (let i = 4; i
부분 수열 문제랑 똑같은데, 연속이라는 점 때문에 2중 포문을 만들 필요가 없었다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let count = 0; rl.on("line", (line) => { if (!count) { count = Number(line); } else { main(line); rl.close(); } }).on("close", () => { process.exit(); }); /** * * @param {string} line */ const main = (line) => { const numbers..
이전 부분 수열 문제들처럼 풀되 조건만 바꿔주면 된다. 그런데 나는 틀렸었는데, 그 이유는 DP[i]의 값을 1로 초기화했기 때문이다. 이전 문제들은 개수를 세는 것이기 때문에 전부 1로 시작했겠지만, 이건 합산하는 것이기 때문에 각 DP[i]는 자기 차례의 숫자가 초깃값으로 저장되어야 한다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.output, }); let count = 0; rl.on("line", (line) => { if (!count) { count = Number(line); } else { main(line); rl.close(..
이전 문제는 결국 다른 사람의 코드를 참고했지만, 이 문제를 풀 때는 어제의 기억으로 그냥 풀 수 있었다. 사실 어제 문제랑 똑같다. 다른 점이 있다면 감소한다는 부분인데, 자바스크립트에서는 reverse라는 내장 함수가 있기 때문에 그냥 거꾸로 돌린 후에 똑같이 풀어주면 된다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.output, }); let count = 0; rl.on("line", (line) => { if (!count) { count = Number(line); } else { main(line); rl.close(); } })...