예꾸
개발자국
예꾸
전체 방문자
오늘
어제
  • 분류 전체보기 (111)
    • CS (6)
      • 데이터베이스 (5)
      • 운영체제 (0)
      • Computer Architecture (1)
    • 끄적끄적 (4)
    • 이론 (29)
      • 알고리즘 (18)
      • 자료구조 (4)
      • WEB (2)
      • JS (2)
      • Git (2)
      • Python (1)
    • 면접준비 (3)
      • Vue (1)
      • Design Pattern (1)
      • Frontend (1)
    • 개발기술 (20)
      • Git PUSH 자동화 (3)
      • VUE (1)
      • Linux (2)
      • MERN Stack (2)
      • React기반 Gatsby로 블로그 개발하기 (6)
      • Typescript (0)
      • 감정일기장(React) (3)
      • CI CD (3)
    • 코드트리 (6)
      • 블로그 챌린지 (3)
      • 모의시험 (3)
    • 취업준비 (3)
      • 코딩테스트 후기 (3)
    • 프로그래머스 (8)
      • SQL (7)
      • 알고리즘 (1)
    • 백준 (31)
      • 그리디(탐욕법) (6)
      • 구현 (5)
      • 그래프탐색(dfs, bfs) (5)
      • 완전탐색 (5)
      • 문자열 (5)
      • 누적합 (2)
      • DP(다이나믹 프로그래밍) (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코딩테스트
  • React
  • JS
  • 자료구조
  • javascript
  • 백준 구현
  • 코드트리 추천
  • 백준 완전탐색
  • 프로그래머스 SQL
  • 코딩테스트실력진단
  • 백준 그리디
  • 백준 그래프탐색
  • 코드트리
  • 알고리즘
  • 프로그래머스
  • 백준 문자열
  • 컴퓨터 시스템의 구조
  • 나만의공부노트
  • 운영체제
  • gatsby

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
예꾸

개발자국

[프로그래머스] 제일 작은 수 제거하기 - JS
프로그래머스/알고리즘

[프로그래머스] 제일 작은 수 제거하기 - JS

2022. 1. 6. 00:52

https://programmers.co.kr/learn/courses/30/lessons/12935

 

코딩테스트 연습 - 제일 작은 수 제거하기

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1

programmers.co.kr

 

생각했던 알고리즘은 

1. arr length가 1이면 [-1]을 return 한다

2. arr에서 가장 작은 수를 구한다

3. 그 수를 arr에서 뺀다

 

여서 굉장히 간단하다 생각했습니다  

JS문법이 간단하지 않아서 그렇지,,,

 

1. 배열에서 제일 작은 수 구하기 - Min, Max

let arr = [1, 2, 3, 4, 5]

let minNum = Math.min(1, 2, 3, 4, 5) // 1
let maxNum = Math.max(1, 2, 3, 4, 5) // 5

위와 같이 min과 max를 이용해 최소 최대값을 구할 수 있습니다 

숫자를 풀어서 써야하는데 그렇다면 array를 어떻게 풀수 있을까요

아래와 같이 2가지 방법이 있습니다

 

Spread문법 (...)과 apply()

let arr = [1, 2, 3, 4, 5]


// 1. ... spread문법
let minNum1 = Math.min(...arr)
// 2. apply()
let minNum2 = Math.min.apply(null, arr)

1. spread는 ...을 사용해 배열의 원소들을 하나씩 꺼내어서 리턴하는 방식입니다

2, apply()는 함수를 호출하는 방법중 하나인데, 함수에서 사용할 this객체와 호출하는 함수로 전달할 파라미터를 입력받습니다. 첫번째 파라미터로는 this를 전달할 필요 없으므로 null, 두번째 파라미터는 배열형태 그대로 넣어주면 됩니다.

 

전 apply는 익숙하지 않아 spread를 사용할 것 같습니다

 

2. 배열에서 특정 숫자 제거하기 - filter

Array.prototype.filter() / return 값 array

const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];

const result = words.filter(word => word.length > 6);
console.log(result); // Array ["exuberant", "destruction", "present"]

위의 예시처럼 filter내부 조건과 일치하는 것만 array 형식으로 return 해주는 함수입니다

let arr = [1, 2, 3, 4, 5]

let minNUm = 1
answer = arr.filter(elem => elem !== minNum) // [2, 3, 4, 5]

위에처럼 코드를 작성하면 특정값을 제외한 array를 return 할 수 있습니다

 

답

function solution(arr) {
    var answer = [];
    if (arr.length === 1) {
        return [-1]
    }
    // list에서 가장 작은 수를구한다
    let minNum = Math.min(...arr)
    // 뺀다
    answer = arr.filter(elem => elem !== minNum)
    
    return answer;
}

 

모두 즐코 하세요 :)

    예꾸
    예꾸
    비전공자 옒의 개발이야기💻

    티스토리툴바