호진방 블로그
학습

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

me
@banhogu
안녕하세요 배움을 나누며 함께 전진하는 1년차 주니어 개발자 방호진입니다.