A.P - 최대값과 최소값 구하기(프로그래머스, L2)

EBinY·2022년 10월 25일
0

AP - Algorithm Problem

목록 보기
50/55
  1. 문제
  • 스트링으로 주어지는 숫자묶음에서 최소값과 최대값을 구해 리턴하라
  • 주어진 스트링의 숫자는 ' '로 구분되어 있음
  • 리턴하는 값의 형태는 '최소값 최대값'의 형태
  1. 수도코드
// 받은 스트링값을 공백을 기준으로 나눠서 배열에 넣고
// 넣은 배열의 값들을 각각 최대값과 최소값을 비교시켜 갱신하고
// 형태에 맞춰 스트링으로 만들고 리턴하자
  1. 시도
function solution(s) {
    var answer = '';
    // 최대값, 최소값을 각각 담을 변수를 선언
    let min = Number.MAX_SAFE_INTEGER;
    let max = Number.MIN_SAFE_INTEGER;
  
    // 숫자를 저장할 빈 배열을 선언
    let na = [];
  
    // 이전 공백의 위치 기준을 잡기 위해 이전 공백 직전의 위치를 저장
    let ns = 0;
  
    // 입력받은 s를 공백을 기준으로 분리해서 배열에 저장
    for (let i = 0; i < s.length; i++) {
        // 빈스트링을 만나면
        if (s[i] === ' ') {
          // 이전 기준값부터 현재공백앞까지 잘라서 배열에 저장하고
            na.push(s.substring(ns,i))
            // 공백기준값을 현재 공백앞까지의 값으로 갱신
            ns = i+1;
        }
    }
  
    // 마지막 숫자를 저장하기 위해 반복문 밖에서 마무리
    na.push(s.substring(ns))
  
    // 저장된 배열을 반복문으로 비교하여 min, max를 갱신하자
    for (let i in na) {
        if (min > Number(na[i])) {
            min = na[i];
        }
        if (max < Number(na[i])) {
            max = na[i];
        }
    }
  
    // ans에 '최소 최대'형태로 붙이고 리턴
    answer =+ min + ' ' + max;
    return answer;
}
  1. 레퍼런스
function solution(s) {
  const arr = s.split(' ');
  
  return Math.min(...arr) + ' ' + Math.max(...arr);
}
  1. 레퍼런스 공부 및 주석
function solution(s) {
  // 알고 있는 문법도 활용하는 방법을 고민해보고 써봐야 한다는걸 다시금 느꼈음
  
  // 내 코드의 9줄을 1줄로 치환하는 split의 사용법
  const arr = s.split(' ');
  
  // str로 이루어진 배열값에도 Math문법이 적용된다는걸 알게 되었음
  return Math.min(...arr) + ' ' + Math.max(...arr);
}

0개의 댓글

관련 채용 정보