TIL.Algorithm 04 제일 작은 수 제거하기

seul3·2022년 2월 10일
0

Algorithm

목록 보기
3/9
post-thumbnail

Algorithm이란?

알고리즘(영어: algorithm), 셈법은 수학과 컴퓨터과학, 언어학 또는 엮인 분야에서 어떠한 문제를 풀어내기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것, 계산을 실행하기 위한 단계적 절차를 의미한다. 즉, 문제풀이에 필요한 계산절차 또는 처리과정의 순서를 뜻한다. 프로그램명령어의 집합을 의미하기도 한다.



문제

프로그래머스의 '제일 작은 수 제거하기' 문제 입니다.

문제 설명

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

제한 조건

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

해결 방법

function solution(arr) {
    let answer = Math.min(...arr);
    const result=arr.filter(arr => arr>Math.min(answer))
    if(result.length >1){
        return result;
    }else {
        return [-1]
    }
}


✍✔ 체크!


맨 처음 풀었던 저의 풀이 방식 입니다.
for문을 통해 index 값을 비교하면서 값이 작을 경우 뒤로 보내는 로직 입니다.
그렇게 되면 가장 작은 값이 맨 뒤에 배치 될테고 pop 메서드를 통해 제거하려고 했습니다.
그렇지만 코드 수를 줄이기 위해 Math.min을 사용하였습니다.
처음에는 메서드를 최소한으로 활용하기 위해 인덱스 번호를 통한 값 비교를 하였지만, 그러면 코드수가 너무 길어지므로 Math.min 메서드를 사용하여 풀었습니다.

let arr=[1,2,3]
console.log(arr[1])
function solution(arr) {
  let answer =[];  
}
for(i=0; i <arr.length; i++) {
console.log(i);
  //0,1,2
  if(arr[i] < arr[i++]) {
    return arr[i++];
  }
  else if(arr.length <1){
    return [-1];
  }
}
profile
꾸준히 성장하는 개발자 입니다 😊

0개의 댓글