학습
JS 코딩테스트 대비 스니펫
# JS로 코딩테스트 준비하면서 알게된 함수, 팁
2024년 01월 13일
배열 오름차순
arr.sort();
arr.sort((a, b) => a - b);배열 원소 중 최댓값
arr.reduce((a, b) => Math.max(a, b));값 올림 내림 반올림
Math.ceil(number);
Math.floor(number);
Math.round(number);Map, Set 객체를 배열로 만들기
let bag = new Map();
let bag = new Set();
let arr = Array.from(bag);객체 키 값 설정
let object = {
key1: 'hi',
};
object[key1] = 'hello';배열 모든 원소 덧셈
arr.reduce((a, c) => {
return a + c;
}, 0);Map 객체, Set 객체 메서드
Map 객체 has, set, delete, get
Set 객체 has, add, delete, size대문자 소문자 변환
str.toUpperCase();
str.toLowerCase();문자열 비교 메서드
arr.sort();
arr.sort((a, b) => a.localeCompare(b));
arr.sort().reverse();문자열 자르기
str.slice(N) 범위 지정안하면 N번째 인덱스부터 끝까지문자열 검색
str.search(word) 첫번째 Index로 나옴. 없으면 -1시간 출력
05:02 식으로 나오게하려면 string.padStart(2,"0")문자열 비교
str.sort()
str.sort((a,b) => {
if(a < b) return -1
else if (a > b) return 1
else return 0
}
str.sort((a,b) => a.localeCompare(b))스택, 큐
arr.unshift(x) -> 배열에 x를 맨 앞으로 넣기
arr.push(x) -> 배열에 x를 맨 뒤에 넣기
arr.shift() -> 배열 맨 앞에 원소 빼기 원본 배열 영향
arr.pop() -> 배열 맨 뒤 원소 빼기 원본 배열 영향배열 [1,2,3,4] 를 입력 문자열로 받았을 때 그대로 실제 배열로 바꾸기
input = [1, 2, 3, 4];
let arr = JSON.Parese(input);실제 배열을 문자열 형식으로 그대로 바꾸기
arr = [1, 2, 3, 4];
console.log(JSON.Stringify(arr))[(1, 2, 3, 4)];배열 원소를 문자열로 출력하기
arr = [1,2,3,4]
arr.join("") -> 1234
arr.join(" ") -> 1 2 3 4배열 안에 빈 배열 만들기
let arr = Array.from({length:3}, () => []) -> [[],[],[]]1차원 구간합 공식
arr = [0];
input.reduce((a, c) => {
arr.push(a + c);
return a + c;
}, 0);
let [start, end];
arr[end] - arr[start - 1];N X N 배열 만들기
let arr = new Array(N + 1);
for (let i = 0; i <= N; i++) {
arr[i] = new Array(N + 1).fill(0);
}아무 수 중 가장 큰 수, 작은 수
let minNum = Number.MIN_SAFE_INTEGER; // -9007199254740991
let maxNum = Number.MAX_SAFE_INTEGER; // 9007199254740991이분탐색 LowerBound
function lowerBound(arr, target, start, end) {
while (start < end) {
let mid = parseInt((start + end) / 2);
if (arr[mid] >= target) end = mid;
else start = mid + 1;
}
return end;
}이분탐색 UpperBound
function lowerBound(arr, target, start, end) {
while (start < end) {
let mid = parseInt((start + end) / 2);
if (arr[mid] > target) end = mid;
else start = mid + 1;
}
return end;
}Slice
let fruits = ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango'];
let citrus = fruits.slice(1, 3);
// fruits contains ['Banana', 'Orange', 'Lemon', 'Apple', 'Mango']
// citrus contains ['Orange','Lemon']문자열도 인덱스로 접근 가능
const mystring = 'abcd';
console.log(mystring[0]);
for (let item of mystring) {
console.log(item);
}
// a
// b
// c
// d