알고리즘/프로그래머스 - JS

[프로그래머스] level.2 최댓값과 최솟값

개발자성장기 2022. 9. 22. 07:11
반응형

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

 

프로그래머스

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

programmers.co.kr

 

 

나의 풀이

 

그냥 보자마자 reduce가 생각이 났다. 

하지만 다른 사람 풀이 보니까 

아 이렇게 하면 더 쉬운데... 라는 생각이 들었다.  하지만 뭐 나한테는 이게 쉬웠고 바로생각나서 이렇게 했다. 

function solution(s) {
    return s.split(" ").reduce((acc,cur) =>{
        acc[1] = acc[1] ?(+cur > acc[1] ? +cur : acc[1]) : +cur 
        acc[0] = acc[0] ?(+cur < acc[0] ? +cur : acc[0]) : +cur
        return acc
    },[]).join(" ")
}

 

 

다른 사람 풀이 

 

1)Math

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

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

Math.min 과 Math.max를 활용하면 더 쉽다. 

 

 

 

2) sort 활용도 가능하다.

 

function solution(s) {
    var arr = s.split(' ');
    arr.sort((a, b) => a - b);

    var answer = arr[0] + " " + arr[arr.length-1];

    return answer;
}
반응형