항해 프로그래머스
항해3주차 자바스크립트 프로그래머스 - 나누어 떨어지는 숫자 배열(Sort)
완두노예
2023. 1. 30. 11:31
처음 풀이
function solution(arr, divisor) {
var answer = [];
for(i=0; i<arr.length; i++)
if arr % divisor === 0 {
return arr[i]
}
else return -1
return answer;
}
// arr % divisor === 0 : return arr
// arr % divisor != 0 : return -1
수정 풀이
function solution(arr, divisor) {
var answer = [];
for(i=0; i<arr.length; i++) {
if(arr[i] % divisor === 0) {
answer.push(arr[i]);
}
}
if(answer.length === 0) {
answer.push(-1);
}
answer.sort((a,b) => a - b);
return answer;
}
// for문
// arr % divisor === 0 : return arr
// arr % divisor != 0 : return -1
// return sort로 오름차순 정렬하기
다른 풀이
filter를 사용하면 배열내에서 검색할 수 있나봄
function solution(arr, divisor) {
var answer = arr.filter(v => v%divisor == 0);
return answer.length == 0 ? [-1] : answer.sort((a,b) => a-b);
}
function solution(arr, divisor) {
var answer = [];
for(var i = 0; i < arr.length; ++i) {
if(arr[i] % divisor == 0) answer.push(arr[i]);
}
return answer.length < 1 ? [-1] : answer.sort((a, b) => a - b);
}
function solution(arr, divisor) {
var answer = [];
for (var i=0; i < arr.length; i ++)
if (arr[i] % divisor == 0)
answer.push(arr[i]);
if(answer.length == 0)
answer = [-1];
else
answer = answer.sort(function(a,b){return a-b});
return answer;
}
Sort : 반환 값에 따른 sort()함수의 해석
- 반환 값 < 0 : a가 b보다 앞에 있어야 한다.
- 반환 값 = 0 : a와 b의 순서를 바꾸지 않는다.
- 반환 값 > 0 : b가 a보다 앞에 있어야 한다.
왜 return a-b / return b-a를 해주는지 확실하게 알 수 있다.
- numbers.sort((a, b) = > a - b); // 오름차순
- numbers.sort((a, b) => b - a ); // 내림차순