[자바스크립트/알고리즘] 프로그래머스 - 최댓값과 최솟값
728x90

문제 설명

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

 

제한 조건

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

 

입출력 예

s return
"1 2 3 4" "1 4"
"-1 -2 -3 -4" "-4 -1"
"-1 -1" "-1 -1"

 

코드

function solution(s) {
    let nums = [];
    s.split(' ').map((ch) => {nums.push(parseInt(ch))})
    
    let max = nums[0], min = nums[0]
    for(let i = 1; i < nums.length; i++){
        if(max < nums[i]) max = nums[i];
        else if(min > nums[i]){
            min = nums[i];
        }
    }
    return min + ' ' + max;
}

s를 숫자로 split 하여 nums란 배열에 넣었다.

그리고 max와 min을 nums의 첫 번째 원소로 설정한 뒤, 반복문으로 max와 min을 구했다.

마지막으로 최솟값과 최댓값을 리턴해주었다.

 

다른 사람의 풀이

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

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

자바스크립트에서 Math.min과 Math.max가 문자열도 가능한지 몰랐다...

보고 큰 충격을 받은 풀이다.

단 두줄로 해결할 수 있다는게 자바스크립트의 큰 장점인 것 같다.

320x100