Problem
- You are given a string of space separated numbers, and have to return the highest and lowest number.
- 공백으로 구분된 숫자 문자열에서, 가장 높은 수와 가장 낮은 수를 반환한다.
Solution 01
function highAndLow(numbers) {
let arr = numbers.split(' ');
let max = arr[0];
let min = arr[0];
for (let i = 1; i < arr.length; i++) {
let n = Number(arr[i]);
if (n > max) max = n;
if (n < min) min = n;
}
return max + ' ' + min;
}
highAndLow('1 2 3 4'); // 4 1
highAndLow('-1 0 1 2'); // 2 -1
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.Number()
: 객체 인수를 숫자로 변환한다. 숫자로 변환할 수 없으면 NaN을 반환한다.
Solution 02
function highAndLow(numbers) {
let arr = numbers.split(' ');
let max = Math.max(...arr);
let min = Math.min(...arr);
return max + ' ' + min;
}
highAndLow('1 2 3 4'); // 4 1
highAndLow('-1 0 1 2'); // 2 -1
Math.max()
: 값이 가장 큰 수를 반환한다.Math.min()
: 값이 가장 작은 수를 반환한다.
Solution 03
function highAndLow(numbers) {
let arr = numbers.split(' ');
let max = Math.max(...arr);
let min = Math.min(...arr);
return `${max} ${min}`;
}
highAndLow('1 2 3 4'); // 4 1
highAndLow('-1 0 1 2'); // 2 -1
Solution 04
function highAndLow(numbers) {
let arr = numbers.split(' ').sort((a, b) => a - b);
let max = arr[arr.length - 1];
let min = arr[0];
return `${max} ${min}`;
}
highAndLow('1 2 3 4'); // 4 1
highAndLow('-1 0 1 2'); // 2 -1
sort()
: 배열의 element를 정렬한 후, 그 배열을 반환한다.