분류 전체보기
-
[백준 / javascript] 2980번 도로와 신호등알고리즘 2023. 5. 15. 23:50
https://www.acmicpc.net/problem/2980 // 2980 : 도로와 신호등 const readFile = process.platform === 'linux' ? '/dev/stdin' : 'test.txt'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split('\n'); const [N, L] = input[0].split(' ').map(Number); let info = []; for (let i = 1; i { time = item[0] + plusTime; let tmp = time % (item[1] + item[2]); if (tmp < item[1]) { plusTime += i..
-
Recoil 적용과 에러 해결Frontend 2023. 5. 14. 15:41
프로젝트에서 Recoil을 사용하여 상태관리를 하고자 해서 Recoil에 대해 알아보며 정리한 글이다. 설치 yarn add recoilRecoilRoot 리코일 state를 사용하는 컴포넌트들은 를 필요로 한다. 를 사용하는 가장 좋은곳은 root component이다. // index.tsx import ReactDOM from 'react-dom'; import App from './App'; import 'styles/reset.scss'; import 'styles/global.scss'; import { RecoilRoot } from 'recoil'; ReactDOM.render( , document.getElementB..
-
[CS] CDN(Contents Delivery Network)CS 2023. 4. 17. 00:03
CDN의 정의 CDN은 컨텐츠 전달 네트워크의 약자로 말 그대로, 컨텐츠를 전달하는 네트워크를 구성하는 것이다. 보통 웹사이트를 로딩할 때는 웹 서버에 HTTP 요청을 하여 리소스를 가져오지만 웹 서버가 아니라 현재 사용자가 접속한 위치에서 가장 가까운 서버에 리소스를 캐싱해놓고 보다 빠르게 가져오는 기법이다. 물론, CDN 네트워크를 구축하기 위해선 해당되는 지역의 ISP(인터넷 제공업체, Internet Service Provider), 네트워크 사업자, 이동통신 사업자에게 서버의 호스팅 비용을 지불해야 한다. 이렇게 네트워크를 구축하게 되면 정적 리소스를 더욱 빠른 속도로 서비스 할 수 있게 되는 것이다. 캐싱 캐싱은 더 빠른 데이터 접근을 위해 동일한 데이터의 여러 복사본을 저장하는 프로세스이다...
-
[백준 / javascript] 2606번 바이러스알고리즘 2023. 4. 16. 20:42
https://www.acmicpc.net/problem/2606 // 2606 : 바이러스 const readFile = process.platform === 'linux' ? '/dev/stdin' : 'test.txt'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); const node = Number(input[0]); const edge = Number(input[1]); const graph = [...Array(node + 1)].map(() => []); const visited = [...Array(node + 1)].fill(false); let answer = 0; // 그래프..
-
[백준 / javascript] 13305번 주유소알고리즘 2023. 4. 10. 17:35
https://www.acmicpc.net/problem/13305 // 13305 : 주유소 const readFile = process.platform === 'linux' ? '/dev/stdin' : 't.txt'; let [n, d, price] = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); n = Number(n); // n의 최댓값이 10^5, 거리와 가격은 10^9로 매우 크므로, BigInt를 사용 d = d.split(' ').map((i) => BigInt(i)); price = price.split(' ').map((i) => BigInt(i)); let curPrice = price[0]; le..
-
[백준 / javascript] 1543번 문서 검색알고리즘 2023. 4. 10. 15:28
https://www.acmicpc.net/problem/1543 // 1543 : 문서 검색 const readFile = process.platform === 'linux' ? '/dev/stdin' : 't.txt'; let [input, target] = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); let document = input.split(''); let start = 0; let end = target.length; let cnt = 0; while (true) { if (document.slice(start, end).join('') === target) { document.splice(start, t..
-
[백준 / javascript] 1991번 트리 순회알고리즘 2023. 4. 10. 15:27
https://www.acmicpc.net/problem/1874 // 1991 : 트리 순회 const readFile = process.platform === 'linux' ? '/dev/stdin' : 't.txt'; const [n, ...input] = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); const nodes = input.map((v) => v.split(' ')); const trees = nodes.reduce((acc, [node, left, right]) => { acc[node] = { left, right }; return acc; }, {}); const traversePreOrder =..
-
[백준 / javascript] 1874번 스택 수열알고리즘 2023. 4. 10. 15:26
https://www.acmicpc.net/problem/1874 // 1874 : 스택 수열 const readFile = process.platform === 'linux' ? '/dev/stdin' : 't.txt'; const input = require('fs') .readFileSync(readFile) .toString() .trim() .split('\\n'); let [n, ...nums] = input; nums = nums.map((n) => Number(n)); const stack = []; let answer = ''; let cnt = 1; for (let i = 0; i < n; i++) { const num = nums.shift(); while (cnt