[코딩테스트] LV.0 짝수 홀수 개수 - JavaScript

JooSehyun·2023년 6월 16일
0

코딩테스트

목록 보기
15/17
post-thumbnail

프로그래머스 - 코딩테스트


LV.0 짝수 홀수 개수

문제 설명

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

제한사항

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


풀이

내 풀이

function solution(num_list){
    let a = 0;
    let b = 0;
    for(let i = 0; i < num_list.length; i++){
        if(num_list[i] %2 == 0){
            a++
        }else {
            b++
        }
    }
    return [a,b]
}

정답

function solution(num_list) {
  let evenCount = 0; // 짝수 개수를 저장할 변수
  let oddCount = 0; // 홀수 개수를 저장할 변수

  for (let i = 0; i < num_list.length; i++) {
    if (num_list[i] % 2 === 0) {
      evenCount++; // 짝수인 경우 evenCount 증가
    } else {
      oddCount++; // 홀수인 경우 oddCount 증가
    }
  }

  return [evenCount, oddCount]; // 짝수 개수와 홀수 개수를 담은 배열 반환
}

주어진 리스트 num_list를 순회하면서 각 원소가 짝수인지 홀수인지 판별합니다. 짝수인 경우 evenCount를 증가시키고, 홀수인 경우 oddCount를 증가시킵니다.

순회가 완료된 후에는 evenCount와 oddCount를 담은 배열을 반환합니다.

예를 들어, num_list가 [1, 2, 3, 4, 5]인 경우, 짝수는 2와 4로 총 2개, 홀수는 1, 3, 5로 총 3개이므로 [2, 3]을 반환합니다.


다른 사람들의 흥미로운 풀이

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

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

    return answer;
}

주어진 리스트 num_list를 순회하면서 각 원소가 짝수인지 홀수인지 판별하여 개수를 카운트하는 방식입니다.

answer 배열을 [0, 0]으로 초기화합니다. answer[0]은 짝수 개수를 저장할 변수, answer[1]은 홀수 개수를 저장할 변수입니다.

num_list를 순회하면서 각 원소 a를 가져옵니다.

a % 2를 통해 a가 짝수인지 홀수인지 판별합니다. 나머지 연산을 사용하여 홀짝을 판단할 수 있습니다. 짝수인 경우 a % 2의 결과는 0이 되고, 홀수인 경우 1이 됩니다.

answer[a % 2] += 1을 통해 a가 짝수인 경우 answer[0]에 1을 증가시키고, 홀수인 경우 answer[1]에 1을 증가시킵니다.

순회가 완료된 후에는 answer 배열을 반환합니다. 이 배열은 짝수 개수와 홀수 개수를 담고 있습니다.

예를 들어, num_list가 [1, 2, 3, 4, 5]인 경우,

1은 홀수이므로 answer[1]이 1 증가합니다.
2는 짝수이므로 answer[0]이 1 증가합니다.
3은 홀수이므로 answer[1]이 1 증가합니다.
4는 짝수이므로 answer[0]이 1 증가합니다.
5는 홀수이므로 answer[1]이 1 증가합니다.
따라서 반환되는 answer 배열은 [2, 3]이 됩니다.

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

이 방식은 num_list 배열을 filter 메소드를 사용하여 짝수와 홀수를 필터링하고, 그 개수를 반환하는 방식입니다.

num_list.filter((num) => num % 2 === 0)는 num_list 배열에서 짝수만을 필터링하는 부분입니다. filter 메소드를 사용하여 배열의 각 원소 num을 순회하면서 num % 2 === 0 조건을 만족하는 원소만을 선택합니다.

num_list.filter((num) => num % 2 === 1)는 num_list 배열에서 홀수만을 필터링하는 부분입니다. filter 메소드를 사용하여 배열의 각 원소 num을 순회하면서 num % 2 === 1 조건을 만족하는 원소만을 선택합니다.

.length를 통해 각 필터링된 배열의 길이, 즉 해당하는 개수를 반환합니다.

반환되는 배열은 [짝수 개수, 홀수 개수]로 구성됩니다.

예를 들어, num_list가 [1, 2, 3, 4, 5]인 경우,

num_list.filter((num) => num % 2 === 0)는 [2, 4]를 반환하고, 해당 배열의 길이는 2입니다. 즉, 짝수의 개수는 2입니다.
num_list.filter((num) => num % 2 === 1)는 [1, 3, 5]를 반환하고, 해당 배열의 길이는 3입니다. 즉, 홀수의 개수는 3입니다.
따라서 반환되는 배열은 [2, 3]이 됩니다.

0개의 댓글