-
[프로그래머스] 제일 작은 수 제거하기- JavaScript 📝Algorithm 2021. 11. 11. 15:28
[링크]
https://programmers.co.kr/learn/courses/30/lessons/12935
[문제설명 및 입출력 예]
[내가 제출한 코드 및 풀이]
💯 if-else 사용한 코드
function solution(arr) { let lowNum = []; /* 가장 작은 수 찾음*/ for(let i=0; i<arr.length; i++) { // arr의 길이만큼 반복 if(i === 0){ // i가 0이면 lowNum.push(arr[i]); // lowNum에 0번째 값 넣음 (일단 0번째 인덱스 값을 넣어두고 다음에 비교) } else { // i가 0이 아니고 if(lowNum[0] > arr[i]) { // lowNum[0]번째 값이 arr[i]의 값보다 크면 lowNum[0] = arr[i]; // arr[i]이 더 작은수이므로 lowNum[0]번째 값은 arr[i]의 값으로 교체 } } } /* 가장 작은 수 제거*/ for(let j=0; j<arr.length; j++) { // arr의 길이만큼 반복 if(arr[j] === lowNum[0]) { // lowNum[0]와 같은 값이 있으면 arr.splice(j,1); // 배열의 j번째에 있는 1개 제거 } } /* 배열 길이 체크*/ if(arr.length === 0){ // 배열에 값이 없을 경우 arr.push(-1) // -1 출력 return arr; }else { // 배열에 값이 있을 경우 return arr; // arr의 값 출력 } }
[다른 사람의 코드]
💡 Math.min 을 사용한 코드
function solution(arr) { arr.splice(arr.indexOf(Math.min(...arr)),1); if(arr.length<1)return[-1]; return arr; }
💡 reduce, filter와 화살표 함수을 사용한 코드
function solution(arr) { if (arr.length <= 1) return [-1]; let min; arr.reduce((acc, cur) => min = cur > acc ? acc : cur); return arr.filter(e => e !== min); }
'Algorithm' 카테고리의 다른 글
JavaScript 로 알고리즘 풀 때의 input, output 방식 (0) 2021.11.12 [프로그래머스] 문자열 내림차순으로 배치하기- JavaScript 📝 (0) 2021.11.11 [프로그래머스] 정수 제곱근 판별 - JavaScript 📝 (0) 2021.11.11 [프로그래머스] 하샤드 수 - JavaScript 📝 (0) 2021.11.10 [프로그래머스] 콜라츠 추측 - JavaScript 📝 (0) 2021.11.10