알고리즘, 자료구조/IDEA note
Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER (최소,최대)
fe-sanginjeong
2025. 5. 12. 06:58
알고리즘 문제를 풀다 보면, 최댓값이나 최솟값을 구해야 하는 문제가 종종 있다.
나는 지금까지 최솟값을 구할 때나 최댓값을 구할 때 어떤 값으로 초기화 해야할 지 고민하는데 시간을 썼다.
쉬운 문제라면 최솟값이나 최댓값의 범위를 알려줘서 (ex. 자연수일 때 최솟값 0으로 초기화) 고민이 없었는데, 어려운 문제를 풀다 보면 설정하기 애매한 조건들이 있었다.
이 방법을 왜 이제 알았을까?
최소값 초기화 Number.MAX_SAFE_INTEGER
어떤 입력값들을 탐색할 때 최솟값을 가장 크게 해놓는다면, 입력값의 처음 인덱스 혹은 첫 값부터 최솟값이 되고, 이후 모두 탐색할 수 있다.
let min = Number.MAX_SAFE_INTEGER;
for(let i=0; i<arr.length; i++){
if(arr[i] < min) {
min = arr[i];
}
}
최대값 초기화 Number.MIN_SAFE_INTEGER
마찬가지로 최댓값은 반대로 최댓값을 가장 작은 값으로 초기화한다면, 첫 값부터 최댓값이되고, 모두를 탐색할 수 있다.
let max = Number.MIN_SAFE_INTEGER;
for(let i=0; i<arr.length; i++){
if(arr[i] > max) {
max = arr[i];
}
}