꺾이지 않는 마음

[프로그래머스] Lv.0 짝수 홀수 개수 JS 풀이 본문

코딩테스트 기록

[프로그래머스] Lv.0 짝수 홀수 개수 JS 풀이

중요한 것은 2022. 10. 24. 20:10

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, num_list의 원소 중 짝수와 홀수의 개수를 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

  • 1 ≤ num_list의 길이 ≤ 100
  • 0 ≤ num_list의 원소 ≤ 1,000

입출력 예

n result
[1, 2, 3, 4, 5] [2, 3]
[1, 3, 5, 7] [0, 4]

입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.

입출력 예 #2

  • [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.

✨나의 풀이

1️⃣ forEach(), 나머지 연산자 % 사용

function solution(num_list) {
    let countedEven = 0;
    let countedOdd = 0;
    
    num_list.forEach((ele)=>{
        if(ele%2===1) {
            countedOdd += 1;
        } else {
            countedEven += 1;
        }
    });
    
    return [countedEven, countedOdd];
}

짝수와 홀수를 구분하는 아주 기초적인 문제.

짝수와 홀수의 특성을 생각하면 쉽게 풀 수 있다.

각 수를 2로 나눴을 때 짝수는 0, 홀수는 1이 나온다.

그래서 나머지 연산자인 %를 사용해서 배열 안의 각 원소에 대입하면 된다.

물론 배열이니까 forEach문을 사용해서!

 

🟨다른 풀이

function solution(num_list) {
    var answer = [0,0];

    for(let a of num_list){
        answer[a%2] += 1
    }

    return answer;
}

 

제출 후에 다른 사람의 풀이를 보다가 발견한 풀이.

답으로 제출할 배열이 0과 1의 인덱스를 갖는다는 걸 이용해서

수를 나눴을 때 나머지가 0이면 0번 인덱스에 +1을,

나머지가 1이면 1번 인덱스에 +1을 해주는 방식으로 풀었다.

 

매우 창의적인 답안이라 가져와봤다.

 

오늘도 성장 +1 스택

Comments