Readline
Readline | Node.js v12.22.12 Documentation
Readline# Source Code: lib/readline.js The readline module provides an interface for reading data from a Readable stream (such as process.stdin) one line at a time. It can be accessed using: const readline = require('readline'); The following simple exampl
nodejs.org
현대 softeer, 앨리스 코딩, 백준 등에서 직접 readline을 서술해야할 때 다음 문법을 기억해두면 좋다.
// 최초 가로열 = n, 세로열 = m, 점의 위치 = k 를 입력받음.
// 이후 k개의 [x,y]를 입력받음.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let firstline = null;
const lines = [];
rl.on('line', function (x) {
const datas = x.split(' ').map(x => Number(x));
if (firstline === null) {
firstline = datas;
} else {
lines.push(data);
}
}).on('close', function () {
// 문제 풀이 작성
let answer = ''
// 문제 답안 출력
console.log(answer)
process.exit();
});
배열
- 길이가 n인 배열 선언
const arr = new Array(40).fill(false);
const arr2 = Array.from({length:40}, () => false)
- 배열 복사
const copyArr = [...arr]
- 배열 비교
JSON.stringify(arr) === JSON.stringify(copyArr) // true
- 배열 중복 제거
let uniqueArr = [...new Set(arr)];
let uniqueArr2 = arr.filter((value, index, self) => self.indexOf(value) === index);
- 이중 배열 선언
let arr2 = new Array(3).fill(null).map(() => new Array(3).fill(0));
- 이중 배열 복사
let copyArr = arr.map(innerArr => [...innerArr]);
let copyArr2 = JSON.parse(JSON.stringify(arr2D));
- 이중 배열 비교
단일과 동일하다.
- 이별 배열 중복 제거
let uniqueArr = arr2D.filter((value, index, self) =>
index === self.findIndex((t) => JSON.stringify(t) === JSON.stringify(value))
);
let uniqueArr2 = Array.from(new Set(arr2D.map(a => JSON.stringify(a))))
.map(e => JSON.parse(e));
간단한 배열 조작
- 원소 찾기
// 특정 값을 찾기
array.indexof()
// 조건에 맞는 값 찾기
array.find()
// 조건에 맞는 모든 값 찾기 (새로운 배열 반환)
array.filter()
// 원소 위치 찾기
array.findIndex()
- 원소 삽입
// 끝에 원소 추가
array.push()
// 원하는 위치에 원소 추가
array.splice(position,0,ele)
// 첫 위치에 원소 추가
array.unshift()
- 원소 삭제
// 끝에 원소 제거
array.pop()
// 중간 원소 제거
array.splice(position,1)
// 처음 원소 제거
array.shift()
- 자른 배열 신규 생성 (원본 배열 수정 x)
array.slice()
- 배열 정렬 (원본 수정)
// 오름차순
array.sort((a, b) => a - b);
원본이 수정되지 않길 바라면, slice나 위에 복제를 한 후 사용하면 좋음
간단한 문자열 문법
- 기본 문법
// 길이
str.length()
// 문자열 합치기
st1 + str2
// 문자열 추출
str.slice(start,end)
// 문자열 검색
str.indexOf("World");
str.includes("World");
str.startsWith("Hello");
str.endsWith("!");
// 문자열 대체
const str = "I like apples. Apples are great.";
str.replace("apples", "bananas"); // "I like bananas. Apples are great."
str.replaceAll("apples", "bananas"); // "I like bananas. bananas are great."
// 문자열 분리 및 결합
const str = "a,b,c,d";
const arr = str.split(",");
console.log(arr); // ["a", "b", "c", "d"]
console.log(arr.join("-")); // "a-b-c-d"
// 문자열 대소문자 변환
const str = "JavaScript";
console.log(str.toLowerCase()); // "javascript"
console.log(str.toUpperCase()); // "JAVASCRIPT"
// 문자열 n회 반복
const str = "Hi!";
console.log(str.repeat(3)); // "Hi!Hi!Hi!"
문자열 조작2 : 정규표현식
몇 가지 문제에서 검사하기 좋다.

필수로 알아야하는 구현
- dfs / bfs
- 순열 / 조합
- 이진 탐색
- 슬라이딩 윈도우
- 투 포인터
'Computer Science > 알고리즘 & 자료구조' 카테고리의 다른 글
| [CRDT] CRDT 심화 정리 (1) | 2025.01.21 |
|---|---|
| [구현] JS 순열/ 조합 (0) | 2024.11.29 |
| [CRDT] CRDT 기본 원리 정리 (1) | 2024.11.11 |
| 이분탐색 (1) | 2023.06.27 |
| 우선순위 큐 와 힙(Heap) (0) | 2023.06.18 |