일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BFS
- HTTP 완벽 가이드
- 그래프
- typescript
- 소켓
- Node.js
- Crawling
- 수학
- 쉬운 문제
- 프로그래머스
- Algorithm
- dp
- TCP
- socket
- HTTP
- 프로그래머스 레벨 2
- type challenge
- 백준
- javascript
- 자바스크립트
- 문자열
- 크롤링
- ip
- Nestjs
- 알고리즘
- dfs
- 타입 챌린지
- 가천대
- 타입스크립트
- 레벨 1
- Today
- Total
목록프로그래밍/알고리즘 풀이 (210)
kakasoo
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9ADLX/btq2KxaOD1A/BRpKZdcHIradxtuWriaWl0/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(line); }).on("close", () => process.exit()); /** * * @param {string} line */ const main = (line) => { const [N, K] = line.split(" ").map(Number); const arr = new Array(N).fill(0).map((el, i) => i + 1); let answer = "
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5phTw/btq2CEuS07U/ywWMOLhQLMgk72z6Hk3zdK/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); let N = 0; const input = []; rl.on("line", (line) => { if (!N) { N = Number(line); } else { input.push(line); if (input.length === N - 1) { main(); } } }); const main = () => { const graph = []; const answer = []; for (let i = 1; i { const [from, to] = edge.split(" "); gr..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eenszx/btq2CE2Wofp/kfVbHHw3VFqOT39L2yfhy1/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(line); }); /** * * @param {string} line */ const main = (line) => { let small = 0; let big = 0; let num = 0; let space = 0; for (let i = 0; i < line.length; i++) { const cur = line[i]; if (!isNaN(cur - 0)) { if (cur === " ") { space++; } els..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cOPFa3/btq2CFfUhrM/uPWw1jK6sRK1lLUURtUxP0/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { let answer = ""; for (let i = 0; i < line.length; i++) { answer += line[i]; if (answer.length === 10) { console.log(answer); answer = ""; } } console.log(answer); });
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/67Lgp/btq2zfhObYN/rsYBBpHPsVXWY96k1pUpq0/img.png)
시간 초과를 해결했더니, 공간 복잡도가 높아지는 문제가 있었다. 일반적으로, dfs로 해서 해결될만한 문제 같은데, 35% 이상을 넘어가면 런타임 에러가 발생했다. ( 중간에 CannotFindModule은 자동완성 때문에 그러하다. ) 내 개인적인 생각으로는, 스택 영역이 고갈되었기 때문이다. 사실, StackSizeExceeded라고 써있으니 당연한 거 아닌가, 생각할 수 있겠지만, 그래도 생각해볼 부분이 나름 있다. 자바스크립트의 변수는 다른 언어들보다 좀 크다. 숫자의 경우의 8바이트, 기본적으로 모든 숫자가 double이기 때문이다. 그러니깐 잘 짜려고 노력해도 남들보다 변수를 2배 이상 가지고 있으니, 똑같은 함수여도 가끔씩 stack이 고갈된다. 따라서 정적인 영역 ( 데이터 영역 )으로 조..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b3vZWV/btq2uWIQu4j/xurgvh3ChzLAwqkYwHKNR1/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const graph = []; let N, M; rl.on("line", (line) => { if (!N) { [N, M] = line.split(" ").map(Number); } else { graph.push(line.split("")); if (graph.length === N) { main(); process.exit(); } } }); const main = () => { let visited = []; const xMove = [0, 0, -1, 1]; const y..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b0wyH9/btq2ynyKX0S/2jULtA3ZIrT4TyOu5x59wK/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const graph = []; let [N, M] = [0, 0]; rl.on("line", (line) => { if (!N) { [N, M] = line.split(" ").map(Number); } else { graph.push(line.split(" ").map(Number)); if (graph.length === N) { main(); process.exit(); } } }); const main = () => { let visited = []; const xMove ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/H7sTy/btq2wMd0c0b/WknccMrMU3oHKVlLYHkcaK/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(Number(line)); process.exit(); }); const main = (line) => { const answer = line % 4; if (answer === 1) { console.log("CY"); } else if (answer === 3) { console.log("CY"); } else { console.log("SK"); } }; 상식적으로 당연하지 않나. 1개를 가져가면 상대는 3개, 3개를 가져..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/q6G4p/btq2uWOxO8z/lwZS7SxNgKFE6jSm2dZ1ZK/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const graph = []; let N, M; rl.on("line", (line) => { if (!N) { [N, M] = line.split(" ").map(Number); } else { const row = line.split(" ").map(Number); graph.push(row); if (graph.length === N) { rl.close(); } } }).on("close", () => { const visited = []; for (let i = 0; i ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/coSnvY/btq2gRV9gqZ/qFpVpGyyGsbiuKnAwcxg6k/img.png)
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 findEmotion = (line, emotion) => { let count = 0; for (let i = 0; i < line.length - 3; i++) { if (line[i] === emotion[0]) { if (line[i + 1] === emotion[1]) { if (line[i + 2]..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/0uVyZ/btq2ieCQniL/eGThVBDpfjAvYlrD7kO4kK/img.png)
// 백준 11365번 !밀비 급일을 풀었습니다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const input = []; rl.on("line", (line) => { if (line !== "END") { input.push(line); } else { main(); rl.close(); } }).on("close", () => { process.exit(); }); const main = () => { for (let i = 0; i < input.length; i++) { console.log(input[i].spl..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/uzzHe/btq2hDb3etu/EGMDTImuzcXUqjWzeNfKCK/img.png)
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { main(line); process.exit(); }); /** * * @param {string} line */ const main = (line) => { let [A, B] = line.split(" ").map(BigInt); if (A > B) { let temp = A; A = B; B = temp; } if (A === B || A + BigInt(1) === B) { console.log(0); return; } let a..