이 영역을 누르면 첫 페이지로 이동
lucid_dream 블로그의 첫 페이지로 이동

lucid_dream

페이지 맨 위로 올라가기

lucid_dream

다양한 상상을 현실로 만드는 멀티 크리에이터를 꿈꾸고 있습니다 ❤️

[Level 1] 제일 작은 수 제거하기

  • 2022.02.24 23:41
  • 📝 문제풀이/프로그래머스
글 작성자: NoHack
728x90

문제 설명

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

제한 조건

  • arr은 길이 1 이상인 배열입니다.
  • 인덱스 i, j에 대해 i≠j이면 arr[i]≠arr[j] 입니다.

문제 풀이

const solution = (arr) => {
  // 배열 내 가장 작은 값을 가진 요소와 인덱스를 구함
  const [minIndex, _] = arr.reduce((a, b, index) => {
      if (a[1] > b) return [index, b];
    }, [-1, 1e9]
  );
  // 가장 작은 값 제거
  arr.splice(minIndex, 1);

  return arr.length === 0 ? [-1] : arr;
};

const inputs = [[4, 3, 2, 1], [10]];
inputs.forEach((input) => console.log(solution(input)));

배열 안에서 가장 작은 값을 찾을 때 사용할 수 있는 메소드는 Array.prototype.reduce와 Math.min이 있습니다. 하지만 저는 reduce를 사용했는데, 그 이유는 인덱스까지 함께 저장하기 위함입니다. 이렇게 해서 가장 작은 값이 위치한 인덱스를 구할 수 있게 되고, 이렇게 구한 인덱스를 이용해 해당 요소를 배열에서 제거할 수 있습니다.

그리고 문제에서 마지막에 배열을 반환할 때, 배열이 비어있다면 [-1]을 반환하게끔 하라 했으니 잊지 않고 처리해 주셔야 합니다.

저작자표시 비영리 동일조건 (새창열림)

'📝 문제풀이 > 프로그래머스' 카테고리의 다른 글

[Level 1] 정수 내림차순으로 배치하기  (0) 2022.02.25
[Level 1] 정수 제곱근 판별  (0) 2022.02.25
[Level 1] 짝수와 홀수  (0) 2022.02.24
[Level 1] 최대공약수와 최소공배수  (0) 2022.02.24
[Level 1] 콜라츠 추측  (0) 2022.02.24

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [Level 1] 정수 내림차순으로 배치하기

    [Level 1] 정수 내림차순으로 배치하기

    2022.02.25
  • [Level 1] 정수 제곱근 판별

    [Level 1] 정수 제곱근 판별

    2022.02.25
  • [Level 1] 짝수와 홀수

    [Level 1] 짝수와 홀수

    2022.02.24
  • [Level 1] 최대공약수와 최소공배수

    [Level 1] 최대공약수와 최소공배수

    2022.02.24
다른 글 더 둘러보기

정보

lucid_dream 블로그의 첫 페이지로 이동

lucid_dream

  • lucid_dream의 첫 페이지로 이동

검색

메뉴

  • All categories
  • About me
  • Guest Book

카테고리

  • 분류 전체보기 (122)
    • 💦 일상뻘글 (1)
    • ⭐️ 프로젝트 (7)
      • 사이드 프로젝트 (1)
      • 스터디 노트 (6)
    • 🌈 기술스택 (31)
      • Web Basic (10)
      • JavaScript (14)
      • React (0)
      • Git (7)
    • 💻 컴퓨터공학 (28)
      • 자료구조 (13)
      • 알고리즘 (7)
      • 운영체제 (4)
      • 소프트웨어 공학 (4)
    • 📝 문제풀이 (55)
      • 프로그래머스 (55)
      • 과제관 (0)
    • 🐹 취미생활 (0)
      • Film Log (0)
      • Cover Song (0)

댓글

정보

NoHack의 lucid_dream

lucid_dream

NoHack

나의 외부 링크

  • Github
  • Instagram

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © NoHack.

티스토리툴바