티스토리 뷰

https://school.programmers.co.kr/learn/courses/30/lessons/120824

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

📌문제 설명

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

 

제한사항

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

📌나의 풀이

나의 경우에는 짝수 값들을 새로운 배열 변수 a에 저장해서 배열 길이를 짝수 개수로 사용했다.

홀수 개수는 전체 배열 길이에서 짝수 개수를 빼서 answer배열에 0번째 1번째에 직접 개수를 넣어줬다.

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

    var a = []; //짝수 정수 저장

    for(let i=0; i<num_list.length; i++){
        if(num_list[i] % 2 === 0) { //짝수 구분
            a.push(num_list[i]); //짝수인 정수 a배열에 저장
        }
        //a배열의 길이 = 짝수 개수
        answer[0] = a.length; 
        //(전체 배열 길이-a배열길이) = 홀수 개수
        answer[1] = num_list.length - a.length;    
    }

    return answer;
}

 

 

📌다른 풀이 방법

1. 배열과 인덱스 활용

짝수 홀수의 나머지를 인덱스로 활용하면 매우 간결한 코드가 된다..!  + for of 사용도 생각하지 못한 방법! 연습해야겠다.

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

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

    return answer;
}

 

 

2. filter 활용

배열을 바로 리턴시키는 방법~

function solution(num_list) {
  return [
    num_list.filter((num) => num % 2 === 0).length,
    num_list.filter((num) => num % 2 === 1).length,
  ];
}

 

 

다음에는 단계를 더 줄일 수 있는 방법을 생각해서 풀어봐야겠다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함