안녕하세요, 주인장입니다.
오늘은 프로그래머스 코딩 기초 트레이닝 문제 "이어 붙인 수 " 포스팅을 시작합니다.
정수가 담긴 리스트 num_list가 주어집니다. num_list의 홀수만 순서대로 이어 붙인 수와 짝수만 순서대로 이어 붙인 수의 합을 return하도록 solution 함수를 완성해주세요.
function solution(num_list) {
let sol = num_list.filter(el=>(el%2===1));
let sol2 = num_list.filter(el=>(el%2===0));
return Number(sol.join(''))+Number(sol2.join(''));
}
el은 이 경우에 'element'의 약어로, num_list의 각 원소를 대표하는 변수입니다. filter 메서드는 배열의 각 원소에 대해 주어진 함수를 실행하고, 그 함수가 true를 반환하는 원소만으로 이루어진 새 배열을 생성합니다.
filter 메서드에 전달된 함수 el => (el % 2 === 1)는 화살표 함수(arrow function)라는 ES6 문법의 일부입니다. 이 함수는 el을 인자로 받아, el을 2로 나눈 나머지가 1인지를 판단합니다. 즉, 이 함수는 el이 홀수인지를 확인합니다.
el은 이 화살표 함수 내에서 정의된 매개변수로서, filter 메서드가 num_list의 각 원소를 el에 대입하면서 함수를 실행하게 됩니다. 예를 들어, 만약 num_list가 [1, 2, 3, 4, 5]라면 filter 메서드는 el에 차례로 1, 2, 3, 4, 5를 대입하면서 함수를 실행하게 되고, 그 결과로서 홀수만을 반환합니다.