프로그래머스
[JavaScript] 배열에서 짝수와 홀수의 개수 구하기 - 프로그래머스
jjangsh
2024. 7. 15. 21:14
문제 :

내 풀이 :
function solution(num_list) {
let result = [];
let evenCnt = 0;
let oddCnt = 0;
for(let i = 0; i < num_list.length; i++) {
if(num_list[i] % 2 == 0) {
evenCnt++;
} else {
oddCnt++;
}
}
result.push(evenCnt, oddCnt);
return result;
}
1. 정수 배열 num_list를 반복문을 이용해 하나하나 추출한다.
2. 추출한 num_list의 i번째를 2로 나눈 나머지가 0인지 아닌지 비교한다.
3. 2번의 결과가 0이면 2로 나누어 떨어지니까 짝수이고 짝수의 개수를 저장하는 변수인 evenCnt를 증가시키고 나누어 떨어지지 않으면 홀수의 개수를 저장하는 변수인 oddCnt를 증가시킨다.
4. 마지막으로 짝수와 홀수의 개수를 각각 담는 result 배열에 push를 시키고 return 시킨다.
통과는 됐지만 최대한 반복문을 사용하지 않고 어떻게 풀 수 있을까 찾아봤다
filter() 라는 함수를 활용해서 풀 수 있겠다 라고 생각했다
filter()는 배열의 각 요소에 대해 제공된 함수가 참인 요소만 걸러낸 새로운 배열을 반환한다
filter()를 사용하여 다시 짠 코드 :
function solution(num_list) {
const evenCnt = num_list.filter(num => num % 2 === 0).length;
const oddCnt = num_list.filter(num => num % 2 !== 0).length;
return [evenCnt, oddCnt];
}
훨씬 가독성도 좋고 간결하게 바뀌었다..
다음부터 문제를 풀기전에 이런 함수가 있지 않을까? 라는 생각이 들면 찾아보고 바로 적용해서 풀어봐야겠다