본문 바로가기

코테/프로그래머스

[코딩 기초 트레이닝] 이어 붙인 수

728x90

[코딩 기초 트레이닝] 이어 붙인 수

문제 링크

구분

코딩 테스트 연습 > 코딩 기초 트레이닝

풀이 요약

조건문을 사용하여 배열 원소의 합을 구하는 문제입니다.

나의 풀이

function solution(num_list) {
    let num1=num_list.filter(el=>(el%2===1));
    let num2=num_list.filter(el=>(el%2===0));
    return Number(num1.join(''))+Number(num2.join(''))
}

풀이에서 el은 ‘element’의 약어로 num_list의 각 원소를 대표하는 변수입니다.

filter 메서드는 배열의 각 원소에 대해 주어진 함수를 실행하고, 그 함수가 true를 반환하는 원소만으로 이루어진 새 배열을 생성합니다.

filter 메서드에 전달된 함수 **el ⇒ (el%2===1)**은 화살표 함수(arrow function)이라는 ES6 문법의 일부입니다. 이 함수는 el을 인자로 받아, el을 2로 나눈 나머지가 1인지(홀수인지) 판단합니다.

el은 이 화살표 함수 내에서 정의된 매개변수로서, filter 메서드가 num_list의 각 원소를 el에 대입하면서 함수를 실행하게 됩니다.

예를들어, num_list가 [ 1, 2, 3, 4, 5 ] 라면 filter 메서드는 el에 차례로 1, 2, 3, 4, 5를 각각 대입하면서 함수를 실행하게 되고, 그 결과로서 홀수만을 반환합니다.

홀수와 짝수를 각각 num1 과 num2에 저장하고 이를 join 메서드를 이용해서 배열의 모든 요소를 연결해서 하나의 문자열로 만들고 이를 연결하여 홀수와 짝수를 더했습니다.

배운점

filter 메서드와 join 메서드 모두 새로운 배열을 생성하여 만들어지기 때문에 원본 배열의 변경이 없다는 것을 알았습니다.

728x90