[프로그래머스] Lv.2 최댓값과 최솟값 (JS)

devlog·2024년 3월 5일
0

알고리즘

목록 보기
2/9
post-thumbnail

Lv.2 최댓값과 최솟값 (JS)



✅ 문제 설명

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

✅ 제한사항

s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.


✅ 풀이

  1. s의 각 수를 arr 배열에 담는다.
  2. Math 함수를 통해 최솟값, 최댓값을 구하고 차례로 answer배열에 push한다. (중간 공백 삽입)
  3. answer 배열을 join 후 정답을 return한다.
function solution(s) {
    let answer = [];    
    let arr = s.split(" ");
    
    answer.push(Math.min(...arr));
    answer.push(" ");
    answer.push(Math.max(...arr));
    
    return answer.join("");
}
}

✳️ 배열에서 Math 함수 사용하기

방법 1. Array.reduce()
var arr = [1, 2, 3];
var max = arr.reduce(function (a, b) {
  return Math.max(a, b);
}, -Infinity);
방법 2. Function.prototype.apply()
function getMaxOfArray(numArray) {
  return Math.max.apply(null, numArray);
}
방법 3. 스프레드 연산자
var arr = [1, 2, 3];
var max = Math.max(...arr);
  • 스프레드와 apply 사용시 요소가 너무 많은 경우 잘못된 결과를 반환하는 경우
    -> reduce를 사용하면 해당 오류가 발생하지 않음

0개의 댓글