본문 바로가기
🖥️ 문제 풀이/프로그래머스

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

by 뒬탕 2022. 9. 22.
반응형

프로그래머스 해답 및 해설

문제 : 최댓값과 최솟값

바로가기

문제 설명

문자열 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"

 

해답 및 해설

파이썬 (Python)

def solution(s):
    s_list = list(map(int,s.split(' ')))
    
    answer = f'{min(s_list)} {max(s_list)}'
    return answer

split 메서드로 나누어 준 후, 리스트 안의 문자를 숫자로 변환시켜줬다. 그 후 max(), min() 함수로 최댓값과 최솟값을 구해주었다.

 

자바스크립트 (Javascript)

function solution(s) {
    var newS = s.split(" ").map(Number).sort((a,b)=>(a-b));
    var answer = `${newS[0]} ${newS[newS.length-1]}`;
    return answer;
}

split 메서드로 나눠준 후, map으로 숫자로 바꾼 후, sort 메서드로 크기순 배열을 하였으나, 중간의 map은 자바스크립트라서 필요 없는 것이었다. (자바스크립트에서는 숫자로 된 문자를 빼면 그대로 계산되어 나오므로)

 

function solution(s) {
    return Math.min(...s.split(' ')) + ' ' + Math.max(...s.split(' '));
}

다른 풀이법으로 이렇게 더 간단한 풀이법이 있었다. Math.max와 Math.min은 주어진 변수들 중에서 최대, 최솟값을 찾는다. 배열 변수 앞의 ...은 Spread Operator(전개 연산자)로, 객체나 배열을 하나씩 꺼내어 펼쳐서 리턴한다. 파이썬의 *과 비슷해보인다.

반응형

댓글