개발 기록 남기기✍️

[프로그래머스] 짝수 홀수 개수 본문

코딩 테스트 연습

[프로그래머스] 짝수 홀수 개수

너해동물원 2022. 12. 22. 09:14

🗒️ 문제 설명

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

 

⚠️ 제한 사항

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

 

👀 입출력 예

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

 


❇️ 나의 풀이

  • even, odd라는 변수를 선언하고 초기값으로 0을 할당한다.
  • for문으로 배열 처음부터 끝까지 돌면서 삼항 연산자를 통해 해당 값이 짝수이면 even += 1, 홀수이면 odd += 1을 할당한다.
  • for문이 끝난 후에 [even, odd]를 반환한다.
function solution(num_list) {
    var even = 0;
    var odd = 0;
    for(i=0;i < num_list.length; i++){
        num_list[i] % 2 === 0 ? even += 1 : odd += 1; 
    }
    return [even, odd];
}

 

✍️ 리뷰

✔️ 더 간결한 코드는 없을까? even, odd 라는 변수를 따로 선언하기 보다 var answer = [0,0] 을 선언하고 값에 따라 해당 위치에 +=1 되도록 해도 되었을 듯 하다.

✔️ 배열 전체를 도는 것이라면, for문에 범위를 저렇게 지정할 필요가 없고 for(let a of num_list){ } 형식을 쓰면 순서대로 배열값을 하나씩 a에 할당한다!

 

💟 본받고 싶은 코드

function solution(num_list) {
    var answer = [0,0];
    for(let a of num_list){
        answer[a%2] += 1
    }
    return answer;
}