알고리즘 문제풀이에 많이 사용되는 것만 따로 정리함.
선언 축약
let a, b;
// a = undefined, b = undefined
let a, b = 1;
// a = undefined, b = 1
let a = 1, b = 2;
// a = 1, b = 2
let [a, b] = [1, 2];
// a = 1, b = 2
let [a, b] = [1];
// a = 1, b = undefined
세 수 중 최솟값을 구하는 방법
// 1. if문 사용
let min;
if(a<b) min = a;
else min = b;
if(c<min) min = c;
// 2. Math객체 사용
Math.min(a,b,c)
배열 요소 중 최솟값 구하기
// 반복문
let min = Number.MAX_SAFE_INTEGER;
for(let i=0; i<arr.length; i++){
if(arr[i]<min) min = arr[i];
}
// Math.min
Math.min(...arr)
세 수 중 max값과 나머지 두 값의 합을 비교하기
1. 전체 sum을 구한다.
2. max값을 찾는다.
3. sum-max = 나머지 두 요소의 합
Number 객체
Number.MAX_SAFE_INTEGER
JavaScript에서 안전한 최대 정수. (2^53 - 1) = 9007199254740991
Number.MIN_SAFE_INTEGER
JavaScript에서 안전한 최소 정수. (-(2^53 - 1)) = -9007199254740991
Number.MAX_VALUE
표현 가능한 가장 큰 양수. 1.7976931348623157e+308
Number.MIN_VALUE (음수가 아님에 주의!)
표현 가능한 가장 작은 양수. 즉, 0보다 크지만 0에 가장 가까운 양수. 5e-324
Number.isInteger()
주어진 값이 정수인지 확인합니다. 1 => true, 1.0 => true, 1.1 => false
Number.isSafeInteger()
주어진 값이 안전한 정수(-(2^53 - 1)과 2^53 - 1 사이의 정수)인지 확인합니다.
MIN_SAFE_INTEGER <= x <= MAX_SAFE_INTEGER 인지 확인함
Number.parseInt()
전역 객체 parseInt()와 동일한 값입니다.
Math 객체
최솟값
Math.min(1, 2, 3) // 1
Math.min(...arr) // 전개연산자+배열 사용가능
최댓값
Math.max(1, 2, 3) // 3
Math.max(...arr) // 전개연산자+배열 사용가능
절댓값
Math.abs(-2) // 2
반올림 (언제나 정수 반환)
Math.round(20.49); // 20
Math.round(20.5); // 21
Math.round(-20.5); // -20
내림 (언제나 정수 반환)
Math.floor(45.05); // 45
Math.floor(4); // 4
Math.floor(-45.05); // -46
올림 (언제나 정수 반환)
Math.ceil(0.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(-0.95); // -0
소수점 자릿수 지정(자르기)
const num = 1.12345;
num.toFixed(3); // "1.123" string타입임에 유의
num.toFixed(0); // "1"
num.toFixed(7); // "1.1234500"
const b = 1.99;
b.toFixed(1); // "2.0" 반올림 되는것에 유의
b.toFixed(2); // "1.99"
b.toFixed(0) // "2"
2의 3제곱
Math.pow(2, 3) // 8
2**3 // pow와 같으나, BigInt 사용이 가능함
// 거듭제곱 연산자 주의사항 : 우측결합성을 가짐. 2**3**2 = 2**(3**2)
랜덤
Math.random() // 0~1 사이의 난수
제곱근
Math.sqrt(16) // 4
Math.squt(3) // 1.7320...
숫자 정수부분 반환
Math.trunc(1.1231) // 1
BigInt
-2^53이하 2^53이상의 수를 다룰 때 사용
const a = 2n ** 53n; // 9007199254740992n
// integer와 혼용해서 연산할 수 없다.
a + 1n // 가능
a + 1 // 불가능
1부터 N까지의 합
1. 반복문
let answer = 0;
for(let i=1; i<=n; i++){
answer += i;
}
2. 가우스 공식
n*(n+1)/2
// 추가 : 1부터 n까지 제곱의 합
n * (n+1) * (2*n + 1) / 6
홀짝 판별
if(n%2 == 1) console.log('홀수')
else console.log('짝수')
n의 자리 구하기
1의 자리
1234%10 // 4
10의 자리
parseInt(1234%100/10) // 3
100의 자리
parseInt(1234%1000/100) // 2
n의 자리
parseInt(1234 % (10*n) / n)
뒤에서 n의 자리까지 구하기
1의자리까지 구하기
1234%10 // 4
10의 자리까지 구하기
1234%100 // 34
'Web development > Algorithm' 카테고리의 다른 글
일곱 난쟁이 (완전탐색/javascript) (0) | 2021.08.25 |
---|---|
[Javascript Cheet Sheet] Array객체, 반복문 (0) | 2021.08.25 |
[프로그래머스] 단속카메라 (javascript) (0) | 2021.08.24 |
[프로그래머스] 구명 보트 (javascript) (0) | 2021.08.23 |
[프로그래머스] 직업군 추천하기 (javascript) (0) | 2021.08.23 |
댓글