프로그래머스 Lv.2 최댓값과 최솟값

J·2023년 7월 1일
0

programmers

목록 보기
30/33

문제 링크 - 최댓값과 최솟값


문제 설명

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

제한 조건

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

입출력 예

sreturn
"1 2 3 4""1 4"
"-1 -2 -3 -4""-4 -1"
"-1 -1""-1 -1"

풀이

  1. 문자열 s를 각 숫자가 담긴 배열로 변환해 변수화.
  2. numArr 배열을 통해 최댓값과 최솟값을 찾음.
  3. 문자열 연결 연산자를 통해 최솟값과 최댓값 두 개가 담긴 문자열을 타입 강제 변환해 리턴.

코드

function solution(s) {
    const numArr = s.split(" ").map(Number);
    const maxNum = Math.max(...numArr);
    const minNum = Math.min(...numArr);
    return minNum + " " + maxNum;
}

다른 사람의 코드

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

생각

  • 난 배열을 숫자로 변환해 넘겨줬는데 아래 다른 사람의 코드에서 볼 수 있듯 Math.min(...arr), Math.max(...arr) 함수가 자동 형변환을 통해 숫자로 출력했음.
  • 이 방법은 숫자로만 구성된 문자열에만 국한되어 동작할 것임. 혹 문자가 섞여있다면 이 방법은 정확한 결과를 제공하지 않을 것임.
  • 코드가 길어지더라도 형변환을 명시적으로 해야함.
profile
벨로그로 이사 중

0개의 댓글

관련 채용 정보