😊
최댓값과 최솟값 JS [Lv2]
October 02, 2022
1. 문제소개
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 “(최소값) (최대값)“형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 “1 2 3 4”라면 “1 4”를 리턴하고, “-1 -2 -3 -4”라면 “-4 -1”을 리턴하면 됩니다.
2. 문제풀이
sort를 적절하게 사용하여 풀 수 있는 문제입니다.
3. 코드
function solution(s) {
let array = s.split(" ").map((x) => {
return Number(x);
});
// 공백을 기준으로 배열을 만들어 준 후 원소들을 number로 바꾸어 줍니다.
// sort함수는 일반적으로 아스키 코드를 기준으로 정렬을 진행합니다.
// 따라서 새로운 방법을 통해서 정렬을 진행해야만 합니다.
array.sort((a, b) => {
return a - b;
});
return array[0] + " " + array[array.length - 1];
}
4. 정리!
sort는 js에서 제공되는 아주 편리한 정렬 함수입니다.
일반적으로 배열.sort()를 사용하는 경우 아스키 코드를 기준으로 정렬이 되기 때문에 특별한 조치를 취해 주어야 합니다.
sort((a,b) => a-b) 는 일반적으로 오름차순 정렬이 수행됩니다.
그 이유를 확인해보겠습니다.
let arr = [-1, 1, 2, 3, 11];
arr.sort((a, b) => a - b); // 일때 오름차순이 진행됩니다.
// 그 이유는 sort의 인자로 들어간 compare함수의 인자인 a,b가
// b 가 배열의 시작부분에 있는 원소
// a 는 배열의 상대적으로 끝부분에 있는 원소 입니다.
// 그래서 첫시행에서 출력은 일반적으로
// a : 1 , b : -1 입니다.
// 이때 return 값이 양수라면 a는 b보다 우선순위가 높습니다!
// 따라서 a -b = 2 이므로 이때 a가 b보다 배열의 뒤에 위치합니다.
Reference
아직 배움의 단계라 정확한 정보가 아닐 수 있습니다.😂
피드백은 seoungin1228@gmail.com 으로 부탁드리겠습니다☺️