일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Node.js
- 쉬운 문제
- Crawling
- dfs
- 타입 챌린지
- 그래프
- 레벨 1
- 타입스크립트
- 알고리즘
- javascript
- socket
- ip
- HTTP
- HTTP 완벽 가이드
- Nestjs
- 가천대
- 자바스크립트
- Algorithm
- 소켓
- 크롤링
- 프로그래머스 레벨 2
- type challenge
- dp
- 프로그래머스
- 수학
- BFS
- typescript
- TCP
- 문자열
- 백준
- Today
- Total
목록자바스크립트 (8)
kakasoo
// 백준 10974번 모든 순열을 풀었습니다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { const elements = new Array(Number(line)).fill(0).map((el, i) => i + 1); const result = [...permutations(elements)].map((el) => el.join(" ")).sort(); for (const a of result) { console.log(a); } }); /** * * @param {number..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { const numPad = new Array(line.length).fill(0).map((el, i) => i + 1); const acc = numPad.map((el, i) => { if (10 ** (i + 1) < Number(line)) { return el * 10 ** i * 9; } else { return el * (Number(line) + 1 - 10 ** i); } }); const sum = acc.reduce(..
const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); const input = []; rl.on("line", (line) => { input.push(line); }).on("close", () => { main(); }); /** * * @param {number} curNumber * @param {number[]} brokenButtons */ const checkNum = (curNumber, brokenButtons) => { const numbers = curNumber.toString().split("").map(Numb..
// 백준 2145번 숫자놀이를 풀었습니다. const readline = require("readline"); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on("line", (line) => { if (line === "0") { rl.close(); } main(line); }).on("close", () => { process.exit(); }); /** * * @param {string} line */ const main = (line) => { let numbers = line.split(""); const sumOfString = (acc, cur) => { acc = Num..
node.js로 푼 사람이 별로 없다는 게 참 슬픈 일이다. 자바스크립트로도 문제를 풀 수 있는데... 이 문제에서 주의할 것은 다음과 같다. ( 이 문제를 굳이 node.js로 검색했다면야... ) BigInt를 사용할 것. Cpp에서만 문제가 될 줄 알고 자만했는데, BigInt 때문에 틀린 것이었다. mod를 잊지 말 것. 나누라고 문제에 분명히 나와 있다. 혹시나 map 함수나 fill 등의 Array의 프로토타입 함수로 배열을 반환했다면, 모든 인덱스의 배열이 같은 배열을 가리키게 된다. 이 부분은 자바스크립트의 특성이므로 기억해두자. const readline = require("readline"); const rl = readline.createInterface({ input: process..
프로그래밍 언어의 구분 컴파일 : 소스코드를 실행하기에 앞서 기계어로 번역하는 행위 컴파일러 : 컴파일을 수행하는 소프트웨어 인터프리터 언어 : 프로그램을 한 줄 마다 기계어로 번역하는 프로그래밍 언어 인터프리터 : 프로그램을 번역해서 실행시키는 소프트웨어 프로그래밍 언어의 유형 절차식 언어 : 절차를 순서대로 작성하는 언어 객체지향 언어 : 처리와 관련된 데이터를 하나로 묶어 객체 단위로 관리하는 언어 함수형 언어 : 프로그램을 함수를 조합하여 구현하는 언어 논리형 언어 : 데이터 사이의 관계와 논리를 설명해나가는 언어 자바스크립트의 특징 인터프리터 언어 웹 브라우저에는 자바스크립트 코드를 해석하는 JIT (Just In Time)컴파일러가 내장되어있다. 동적 프로토타입 기반 객체지향 언어이다. → 클..
아는 동생에게 프로그래밍을 가르치며, this에 대해서 설명한 적이 있다. 나는 this를 계속해서, ‘나’라고 설명했다. 너에게 ‘나’는 너일 것이고, 나에게 ‘나’는 나 자신을 가리키는 말인 것처럼, this는 클래스의 인스턴스들이, 각자 자기 자신을 가리키는 말이라고 말했다. 예컨대 자동차에게 ‘나’는 차종이 아니라, 그 자동차 개체 한 개만을 의미한다는 뜻이었다. 객체지향적인 것 this가 있단 것만으로도 언어는 조금 더 객체지향적이라고 할 수 있다. Class를 정의한 후 인스턴스를 만든다면, 우리는 깊은 복사를 할 필요 없이 새 객체를 만들 수 있다. 물론 Function을 이용해 재사용성을 의도적으로 없애는 캡슐화도 있긴 하나, 이런 특수한 경우를 제외하고는 대부분의 클래스 기반 언어는 객체..
C언어를 다룰 때 가장 힘든 것이 동적할당이었다. 동적할당을 처음 배울 당시, 나는 프로그래밍을 마치고 동적할당을 해제하지 않으면, 컴퓨터의 자원을 영영 잃어버리는 것이 아닐지, 그 부분에 대해서 두려움을 가졌다. 당연히 지금은 운영체제가 그런 부분을 자동적으로 처리해준다는 것을 알고 있다. 하지만 그 사실을 몰랐던 나는, 동적할당을 의사가 환자 다루듯 신중하게 해야 했다. 도달 가능성 Mark-and-Sweep 알고리즘이 있다. 이는 말하자면 DFS, BFS와 유사하게, 도달가능한 모든 영역을 탐색하는 알고리즘이다. 나중에 다른 포스팅에서 말하겠지만, JavaScript는 다양한 Enviorment를 Context로 가진다. Mark-and-Sweep 알고리즘은 이 환경 중 맨 처음에 위치할 전역 환경..