jiho_bae
Go devlog
jiho_bae
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (38)
      • theory (34)
      • vanilla (4)
    • HTML & CSS (2)
    • Browser (3)
    • CS (6)
      • linux (1)
      • shell (2)
      • compiler (2)
    • DS & Algorithm (87)
      • theory (5)
      • basic (7)
      • programmers (30)
      • baekjoon (45)
    • Design Pattern (2)
    • Error (4)
    • Git & Github (4)
    • Tools (1)
    • 부트캠프 (4)
    • Small Tips (2)
    • Java (3)
    • test (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트 커링
  • 자바스크립트 채팅방 스크롤
  • 13460 javascript nodejs
  • fetch 취소하기
  • safari Date format NaN
  • 자바스크립트 배열의 특수함
  • 리액트 프로젝트 디버깅하기
  • JavaScript
  • 리코쳇 로봇 javascript
  • 자바스크립트 모듈 시스템
  • 카카오 코딩테스트 양궁대회 nodeJS
  • safari invalid date error
  • 덧칠하기 javascript
  • 퀵정렬 자바스크립트
  • 백준 자바스크립트 입력 템플릿
  • 자바스크립트 sort는 왜 그모양일까
  • 깃 이전 커밋에서 새 브랜치 만들기
  • 가사 검색 자바스크립트
  • 프로그래머스 숫자카드나누기 javascript
  • javascript use strict
  • 대충만든자판 javascript
  • 외벽 점검 javascript
  • 억억단을 외우자 javascript
  • 자바스크립트 비동기 마이크로 태스크 큐와 렌더링 과정
  • 계수정렬 자바스크립트
  • 25632 소수 부르기 게임
  • 자바스크립트 이벤트 위임
  • 1753 최단경로 javascript
  • 백준 17406 nodeJS
  • 병합정렬 자바스크립트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jiho_bae

Go devlog

DS & Algorithm/basic

[기초 알고리즘] 최솟값 구하기 - 자바스크립트

2021. 4. 7. 16:40

문제

배열로 7개의 수가 주어지면, 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성하라.
(정렬을 사용하지 않고 실행해야한다.)

나의 풀이

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

let arr = [5, 3, 7, 11, 22, 15, 17];
console.log(solution(arr));
  • 답은 간단하다.
  • 배열의 요소를 순회하면서 가장 작은 값을 구해주면 된다.
    • 여기서 min을 선언할 때, Number.MAX_SAFE_INTEGER 를 사용하였는데,
    • 이건 자바스크립트에서 안전하게 나타낼 수 있는 최대 정수를 의미한다.

추가 이론) Math.min 메서드 이용하기

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

    return min;
}

let arr = [5, 3, 7, 11, 22, 15, 17];
console.log(solution(arr));
  • Math.min() 메서드를 이용해서 바로 최솟값을 구할 수 있다.
  • 그러나, 이 메서드는 개별 숫자들을 인자로 받는다.

Math.min(5,4,7,10); 의 형태로 받는다는 의미다.

  • 그래서 배열 arr를 Math.min(arr) 의 형태로 사용할 수 없다.
  • Spread Operator를 이용하면, 해결이 가능하다.

Spread Operator

let arr = [5, 3, 7, 11, 22, 15, 17];

console.log(Math.min(arr)); // error

console.log(Math.min(...arr)); // 3
  • Spread Operator는 ...array 형태를 가진다.
  • 문자 그대로 펼친다는 의미로, ...arr는 배열 arr에 있는 인자들을 펼쳐준다.
  • 그러므로 Math.min(...arr) 는 Math.min(5,3,7,11,22,15,17) 과 같은 역할을 한다.
  • 참고 : Spread Operator

Spread Operator 없이 최소값 구하기

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

    return min;
}

let arr = [5, 3, 7, 11, 22, 15, 17];
console.log(solution(arr));
  • 다음과 같이 Math.min.apply() 메서드를 이용하면 된다.
  • 첫번째 인자로, 함수 min을 호출할 때 제공되는 this의 값을 넣어줘야 한다. 여기서는 null을 이용했다.
  • 두번째 인자로, 구하고자 하는 배열을 넣어서 함수의 결과 값인 최솟값을 받을 수 있다.
  • 참고 : Function.prototype.apply
저작자표시 (새창열림)

'DS & Algorithm > basic' 카테고리의 다른 글

[기초 알고리즘] 멘토링 - 자바스크립트  (0) 2021.04.18
[기초 알고리즘] 가장 짧은 문자거리 - 자바스크립트  (0) 2021.04.16
[기초 알고리즘] 봉우리 - 자바스크립트  (0) 2021.04.08
[기초 알고리즘] 등수 구하기 - 자바스크립트  (0) 2021.04.08
[기초 알고리즘] 삼각형 판별하기 - 자바스크립트  (0) 2021.04.07
    'DS & Algorithm/basic' 카테고리의 다른 글
    • [기초 알고리즘] 가장 짧은 문자거리 - 자바스크립트
    • [기초 알고리즘] 봉우리 - 자바스크립트
    • [기초 알고리즘] 등수 구하기 - 자바스크립트
    • [기초 알고리즘] 삼각형 판별하기 - 자바스크립트
    jiho_bae
    jiho_bae
    하루에 한 걸음씩

    티스토리툴바