[링크]
https://programmers.co.kr/learn/courses/30/lessons/12935
코딩테스트 연습 - 제일 작은 수 제거하기
정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1
programmers.co.kr
[문제설명 및 입출력 예]
[내가 제출한 코드 및 풀이]
💯 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 |