※ 문제
7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 7개의 수가 주어진다.
▣ 출력설명
첫 번째 줄에 가장 작은 값을 출력한다.
▣ 입력예제1
5 3 7 11 2 15 17
▣ 출력예제 1
2
※ 코드
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr) {
let answer;
let min = Number.MAX_SAFE_INTEGER;
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));
</script>
</body>
</html>
※ 설명
최솟값을 구하려면 맨 처음 값을 큰값으로 할당해야 한다. 따라서 min이라는 변수에 Number객체안에 있는 MAX_SAFE_INTEGER을 할당하여 가장 큰 정수값을 할당해 놓는다.
이후 배열의 index 0에서 부터 arr의 길이 미만 만큼 반복해야 하므로 i 변수에 0을 할당하고 arr.length로 배열의 크기(=index + 1) 미만 만큼(=index)반복한다.
각 배열의 데이터가 min값(초기 가장 큰 값)보다 작을 경우 min에 각 배열의 데이터를 할당한다.
이후 answer로 return하기 때문에 answer변수에 min값을 할당한다.
※ 핵심
- 내장함수로 최솟값, 최댓값 구하는 법내장함수에는 인자만 들어갈 수 있으며 인자가 아닌 배열인 경우 spread operater인 ‘...’을 사용하여 인자화 시킨 후 매개변수로 넘겨주어야 한다.
- Math객체에서 제공하는 min, max함수를 사용하여 최솟값과 최댓값을 구할 수 있다.
// 인자
Math.min(1, 2, 3) // 최솟값 => 1
Math.max(1, 2, 3) // 최댓값 => 3
// 배열
// ... => spread 연산자를 사용해야 함. (배열 = 객체)
Math.min(...arr) // 최솟값 => 1
Math.max(...arr) // 최댓값 => 3
해당 내용은 김태원님의 자바스크립트 알고리즘 문제풀이 강의를 듣고 작성한 글입니다.
'🤯 코딩테스트 > Javscript' 카테고리의 다른 글
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 10부제 (0) | 2022.01.08 |
---|---|
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 홀수 (0) | 2022.01.08 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 1부터 N까지의 합 출력하기 (0) | 2022.01.08 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 연필 개수 (0) | 2022.01.08 |
[자바스크립트 알고리즘 문제풀이(코딩테스트 대비)] Section 01 - 삼각형 판별하기 (0) | 2022.01.08 |