정수가 담긴 리스트 num_list
가 주어질 때, num_list
의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.
function solution(num_list) {
var answer = [];
return answer;
}
num_list
의 길이 ≤ 100num_list
의 원소 ≤ 1,000num_list | result |
---|---|
[1, 2, 3, 4, 5 | [2, 3] |
[1, 3, 5, 7] | [0, 4] |
처음에는 map()
을 이용하여 홀짝을 구분하고 나온 결과에 filter()
를 걸어서 결과를 출력하는 방식으로 풀었다.
function solution(num_list) {
let arr = num_list.map((el) => {
if(el % 2 == 0) {
// return arr.push(el.length);
return "짝수";
}
else {
return "홀수";
}
for (let i=0; i<=el.length; i++) {
return console.log("d");
}
});
let a = arr.filter(item => "짝수" === item).length;
let b = arr.filter(item => "홀수" === item).length;
return [a, b];
}
그런데 위의 방식으로 풀고 나니까 그냥 filter 한개로만 작성 가능하다는걸 깨달아서 코드를 더 간결하게 바꿨다.
function solution(num_list) {
let a = num_list.filter(item => item%2 === 0).length;
let b = num_list.filter(item => (item%2)-1 === 0).length;
return [a, b];
}
of
를 사용해서 이렇게 간단하게 풀 수 있다니;;
function solution(num_list) {
var answer = [0,0];
for(let a of num_list){
answer[a%2] += 1
}
return answer;
}
배열로 바로 리턴하는 방법이 신기해서 가져옴
그리고 나는 홀수를 filter(item => (item%2)-1 === 0)
로 작성했는데 그냥 1을 쓰면 되는거였다..
function solution(num_list) {
return [
num_list.filter((num) => num % 2 === 0).length,
num_list.filter((num) => num % 2 === 1).length,
];
}