코딩테스트

[ 프로그래머스 ] javascript - 최댓값과 최솟값

유기린 2022. 12. 6. 11:29

https://school.programmers.co.kr/learn/courses/30/lessons/12939

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

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


function solution(s) {
    var answer = s.split(" ");  
    return Math.min.apply(null,answer) + " " +Math.max.apply(null,answer);
}

 처음에는 정렬을 해서 처음 수와 마지막 수를 꺼낼까 했는데 길이가 항상 일정하지 않고 복잡해질꺼 같아서

가장 큰수와 작은수를 찾는 방법으로 선택했다.

나는 블로그를 참고해서 apply()를 사용했는데 

다른 사람들은 전개연산자(...) 로 apply()를 대신했다

 

다른사람 풀이

function solution(s) {
    const arr = s.split(' ');

    return Math.min(...arr)+' '+Math.max(...arr);
}

 

 

전개연산자 자료

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Spread_syntax

 

전개 구문 - JavaScript | MDN

전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시

developer.mozilla.org

 

 

 

 

참고

배열에서 최대값, 최소값 구하기 : https://hianna.tistory.com/487