1. 문제 설명
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
2. 제한 조건
arr은 자연수를 담은 배열입니다.
정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
divisor는 자연수입니다.
array는 길이 1 이상인 배열입니다.
3. 예시
입력/출력
4. 풀이
[for문/if/화살표 함수]
function solution(arr, divisor) {
var answer = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] % divisor == 0) {
answer.push(arr[i]);
}
}
if (answer.length == 0) {
answer.push(-1);
}
return answer.sort((a,b) => a - b);
}
[3항연산자]
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);
}
화살표 함수
- 화살표 함수 표현(arrow function expression)은전통적인 함수표현의(function) 간편한 대안
let sum = (a, b) => a + b;
/* 위 화살표 함수는 아래 함수의 축약 버전입니다.
let sum = function(a, b) {
return a + b;
};
*/
alert( sum(1, 2) ); // 3
출처 : https://ko.javascript.info/arrow-functions-basics
1) 매개변수(인자)를 사용할 경우
매개변수가 하나일 경우 소괄호 ( ) 를 생략 가능하고 두 개 이상일 때는 불가능
// 매개변수가 없을 경우
() => { ... }
// 매개변수가 하나일 경우 - 소괄호 생략 가능
data => { ... }
(data) => { ... }
// 매개변수가 두 개 이상일 경우 = 소괄호 생략 불가
(data1, data2, data3) => { ... }
2) 함수의 블록 범위
기본적으로 화살표 함수는 구문 내에 암묵적으로 return이 설정
그러니 따로 적지않아도 => 안의 내용들을 return 시켜주지만,
중괄호 { } 로 감싼다는건 하나의 코드 블럭을 명시하며 감싼 내부의 것들은 따로 return 해주어야 한다.
// 한 줄 구문이라면 중괄호 생략 가능, return 이 기본 설정되있음.
data => console.log(data)
// 위와 같은 기능이지만 { } 로 감싸면 안의 내용을 따로 return 해주어야 함.
data => { return console.log(data) }
// 두 줄 이상의 구문이면 중괄호 { } 생략 불가능
data => {
const msg = data;
return msg;
}
일반 함수와 화살표 함수의 차이점은 아래 링크 참고
출처 : https://mjn5027.tistory.com/78
'개발 공부 > 알고리즘' 카테고리의 다른 글
[프로그래머스 알고리즘] "문자열 내 p와 y의 개수" JavaScript / toUpperCase 소문자를 대문자로 (0) | 2022.03.14 |
---|---|
[프로그래머스 알고리즘] "내적" JavaScript / reduce 메쏘드 (0) | 2022.03.13 |
[프로그래머스 알고리즘] "2016년" JavaScript / new Date() (0) | 2022.03.13 |
[프로그래머스 알고리즘] "부족한 금액 계산하기" JavaScript (0) | 2022.03.13 |
[프로그래머스 알고리즘] x만큼 간격이 있는 n개의 숫자 JavaScript (0) | 2022.03.13 |