천진난만 코딩 스토리
1-5. 최솟값 구하기 본문
-코드 1-
function solution(arr) {
let answer,
min = Number.MAX_SAFE_INTEGER;
for (let i = 1; i < arr.length; i++) {
if (arr[i] < min) min = arr[i];
}
answer = min;
return answer;
}
let arr = [5, 3, 7, 11, 2, 15, 17];
console.log(solution(arr));
-풀이과정-
let arr = [5, 3, 7, 11, 2, 15, 17]; 를 하여
입력되는 수를 배열함.
function solution(arr) 를 하여
배열을 불러오고
let answer, min = Number.MAX_SAFE_INTEGER; 를 하여
answer를 만들고
min = Number.MAX_SAFE_INTEGER 를 하여
매우 큰 숫자를 저장한 min을 만듬.
for (let i = 1; i < arr.length; i++) 를 하여
let i = 1 을 하여 i에 1을 넣어주고
i < arr.length 를 하여 i가 arr의 배열의 길이보다 적을 때에만 반복하게 함.
(length는 배열의 길이를 말하는 함수)
i++ 를 하여 i가 1씩 늘어나면서 반복하게 함.
if (arr[i] < min) min = arr[i]; 를 하여
만약 arr[i]가 min보다 작으면 min 에 arr[i]를 저장함.
(첫 min은 터무니없이 큰 숫자이므로 무조건 arr[0]의 숫자가 저장됨)
answer = min; 을 하여
answer 에 최종 min을 저장하고
return answer; 을 하여
값을 업데이트하고
console.log(solution(arr)); 를 하여
answer = min이 된 solution(arr)을 출력함.
-코드 2-
function solution(arr) {
let answer,
min = arr[0];
for (let i = 0; i < arr.length; i++) {
if (arr[i] < min) min = arr[i];
}
answer = min;
return answer;
}
let arr = [5, 3, 7, 11, 2, 15, 17];
console.log(solution(arr));
-풀이과정-
다른 코드는 위의 코드와 같지만
let answer, min = arr[0]; 를 하여
min에 터무니없는 숫자 대신 arr[0]의 숫자를 넣고
for (let i = 0; i < arr.length; i++) 를 하여
let i = 1 대신 let i = 0을 하면 같은 값이 출력됨.
두 코드 중 어떤 코드를 사용해도 상관없음.
-코드 3-
function solution(arr) {
let answer = Math.min(...arr);
return answer;
}
let arr = [5, 3, 7, 11, 2, 15, 17];
console.log(solution(arr));
-풀이과정-
다른 코드는 위의 코드들과 같이 풀이하면 되고
다른 점은
Math.min 이라는 내장함수를 사용하여 최솟값을 구함.
Math.min는 1,3,6... 등 인자만 받기 때문에
Math.min(arr)를 하면 인자가 아닌 arr은 최솟값을 구할 수 없음.
그렇기에 Math.min(...arr) 를 하여 배열을 풀어서 인자로 받을 수 있도록 함.
'코딩테스트.js > 자바스크립트 알고리즘 문제풀이 입문 (인프런)' 카테고리의 다른 글
1-7. 10부제 (0) | 2022.12.24 |
---|---|
1-6. 홀수 (0) | 2022.12.24 |
1-4. 1부터 N까지 합 출력하기 (0) | 2022.12.20 |
1-3. 연필 개수 (0) | 2022.12.19 |
1-2. 삼각형 판별하기 (0) | 2022.12.18 |