(알고리즘) 최솟값 구하기

호두파파·2022년 1월 12일
0

알고리즘 연습

목록 보기
21/60


7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성하세요.

입력설명

첫 번째 줄에 7개의 수사 주어진다.

출력설명

첫 번째 줄에 가장 작은 값을 출력한다.

입력예제

'5 3 7 11 2 15 17'

출력예제

2


입력예제가 str이냐 arr이냐에 따라 문제 풀이가 달라질 수 있다. 나는 문자열을 입력받는다고 가정하고 문제를 풀었다.
문자열을 파라미터를 따라 배열로 나눠주는 메소드 split()으로 배열로 변환 후에 정렬 메소드 sort()를 이용해 오름차순 배열로 정리를 해줬다. 가장 첫 번째 인덱스의 요소가 최솟값이 된다. 다만 배열의 각 요소들이 문자열이기 때문에 값을 반환하기 전에 Number()로 감싸주었다.

각 메소드는 체이닝이 가능한 JS의 특성을 이용해 작성했다.

function solution (N) {
  return Number(N.split(' ').sort((a, b) => a - b)[0]);
}
const N = '5 3 7 11 2 15 17';


내장함수를 이용하지 않고 문제 풀기

function solution(arr) {
  let answer, min=arr[0];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] < min) min = arr[i];
  }
  answer = min;
  return answer;
}

내장함수 Math를 이용해서 문제 풀기

function solution(arr) {
  let answer = Math.min(...arr);
  return answer;
}

전개 연산자를 통해 배열을 함수의 인자로 넘겨줄 수 있다.

function solution(arr) {
  let answer = Math.min.apply(null, arr);
  return answer;
}

answer(this, arguments1) this를 null로 지정하고 첫 번째 인수로 배열을 넘겨준다.

profile
안녕하세요 주니어 프론트엔드 개발자 양윤성입니다.

0개의 댓글