알고리즘

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

BGK97 2025. 1. 9. 14:55

문제 설명

문제 출처

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

문제 설명

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

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

풀이 방법

  • 레벨2 치고는 쉬운 문제였던 것 같다. 문자열을 배열에 직접 할당하고, 배열을 돌면서 값을 비교하며 min, max를 구하고 이후 +를 통해 문자열 연결을 시행했다.

풀이 코드

function solution(s) {
    let answer = '';
    const array = s.split(" ");
    let [min, max] = [Number(array[0]), Number(array[0])];
    
    array.forEach((value, idx) => { 
        //나머지는 값을 비교하여 최대와 최소를 바꾼다.
        if(Number(value) > max){
            max = Number(value);
        }
        else if(Number(value) < min){
            min = Number(value);
        }    
    })
    
    return min + " " + max;
}

회고

  • 변수를 처음에 아래와 같이 저장했었는데... 안 되는줄 몰랐다. min 값이 초기화가 안되는 거였다
let min, max = Number(array[0]); //안되던 코드
let [min, max] = [Number(array[0]), Number(array[0])]; //되는 코드
  • 그 후 아래처럼 수정하여서 직접 분해 할당을 해줬고, 정상적으로 할당이 되었다. 
  • 다음부터는 코드 줄일 생각말고 그대로 쓰던가 분해 할당을 하던가 해야겠다...