프로그래머스 - 나누어 떨어지는 숫자 배열

So'sCode·2022년 1월 5일
0

프로그래머스 - Lv1.

목록 보기
7/20
post-thumbnail

문제설명📖

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

제한사항🔐

  • arr은 자연수를 담은 배열입니다.
  • 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
  • divisor는 자연수입니다.
  • array는 길이 1 이상인 배열입니다.

코드🔑

function solution(arr, divisor) {
    var answer = [];
    for(let i = 0 ; i < arr.length;i++){
        if(arr[i] % divisor == 0) {
            answer.push(arr[i]);
        }
    }
    answer.sort((a,b)=>a-b)
    if(answer.length === 0){
        answer.push(-1)
    }
    return answer;
    
}

정리 및 알게된 점 📚

📌 push
push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환 한다.

📌 오름차순 정렬
arr.sort([compareFunction])

arr는 임의의 Array 개체이다. [compareFunction]는 요소 순서를 결정하는 데 사용되는 함수의 이름이다. 여기서 [compareFunction]를 생략하면(ex arr.sort()) 오름차순, ASCII 문자 순서로 정렬된다.

sortFunction 인수에 함수를 지정하면 아래의 값 중 하나가 반환된다.

  • 첫 번째 인수가 두 번째 인수보다 작을 경우 - 값
  • 두 인수가 같을 경우 0
  • 첫 번째 인수가 두 번째 인수보다 클 경우 + 값
answer.sort(function(a, b)  {
  return a - b;
});
↓
answer.sort((a,b)=>a-b)

📌 "==" 와 "===" 의 차이

  • == : 값과 값을 비교 (강제 형변환 과정을 통해 피 연산자들을 공통 타입으로 만들고 그 안에 있는 값만을 비교하는, '느슨한 비교'를 한다.)
let a = 1
let b = 2 
> console.log(a == b )
< false (a값과 b의 값이 다르기 때문에) 
  • === : 값과 데이터 타입을 비교 (강제 형변환 과정을 수행하지 않는 '엄격한 비교')
var a = 3;
var b = '3';
let c = 3;

a === b // false
a === c // true
b === c // false
  • ==와 === 구별해주는 이유.
    타입을 따로 지정해주지 않는 자바스크립트의 변수 특성상 이를 구별하기 위해 만든 것.
profile
이왕하는거미루지말고하자.

0개의 댓글