일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- typescript
- type challenge
- 타입 챌린지
- javascript
- 레벨 1
- 타입스크립트
- Node.js
- 자바스크립트
- 프로그래머스 레벨 2
- socket
- Algorithm
- BFS
- HTTP 완벽 가이드
- Nestjs
- 프로그래머스
- 수학
- 알고리즘
- 크롤링
- 가천대
- dfs
- Crawling
- 쉬운 문제
- ip
- 그래프
- TCP
- 문자열
- HTTP
- dp
- 백준
- 소켓
- Today
- Total
목록graph (2)
kakasoo
시간 초과를 해결했더니, 공간 복잡도가 높아지는 문제가 있었다. 일반적으로, dfs로 해서 해결될만한 문제 같은데, 35% 이상을 넘어가면 런타임 에러가 발생했다. ( 중간에 CannotFindModule은 자동완성 때문에 그러하다. ) 내 개인적인 생각으로는, 스택 영역이 고갈되었기 때문이다. 사실, StackSizeExceeded라고 써있으니 당연한 거 아닌가, 생각할 수 있겠지만, 그래도 생각해볼 부분이 나름 있다. 자바스크립트의 변수는 다른 언어들보다 좀 크다. 숫자의 경우의 8바이트, 기본적으로 모든 숫자가 double이기 때문이다. 그러니깐 잘 짜려고 노력해도 남들보다 변수를 2배 이상 가지고 있으니, 똑같은 함수여도 가끔씩 stack이 고갈된다. 따라서 정적인 영역 ( 데이터 영역 )으로 조..
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 ..