개발로그필름

[프로그래머스] 짝수 홀수 개수 javascript (반복문 for of, filter) 본문

coding test/프로그래머스

[프로그래머스] 짝수 홀수 개수 javascript (반복문 for of, filter)

yuullog 2023. 2. 13. 13:39
728x90
반응형
SMALL

 

내가 짠 코드는,, 정말 원시적이고 어떻게든 맞추겠다, 코드 돌아가기만 하겠다! 하는 느낌으로 짠 코드다..

아직 많이 부족한 거 아니까! 나중에 이렇게 못했구나 보는 기록용..ㅎㅎ

 

그래서 다른 분들 풀이 보고 이렇게 짜는 거구나! 배우면서 같이 공부하는 중이다

 

 

 

문제 설명

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

 

제한사항

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

 

입출력 예

 

입출력 예 설명

 

solution.js

function solution(num_list) {
    var answer = [0,0]
    var a = 0
    var b = 0
    for(i in num_list) {
        if (num_list[i] % 2 == 0) {
            a++
            answer[0] = a
        }   
        else {
            b++
            answer[1] = b
        }
            
        
    }
    return answer
    
}

 

 

 

다른 사람 풀이 1

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

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

    return answer;
}

이런 방법이 있을 수도 있구나 감탄했던 풀이

answer 배열을 [0,0]으로 초기화시켜주고

for of 반복문을 사용해 num_list안에 있는 요소들을 반복하면서 2로 나눴을 때 나머지가 0 또는 1인 점을 활용해

answer [] 배열에 바로 넣어서 1을 증가시켰다

그리고 반복 끝나면 바로 answer 배열 반환

 

for ... of

const array = [1, 2, 3];

for (const num of array) {
  console.log(num);
}

// 1
// 2
// 3

array 안에 있는 요소를 하나씩 돌아가면서 반복한다.

 

 

다른 사람 풀이 2

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

arr.filter() 함수를 사용해 각 짝수, 홀수 요소 개수를 filter 해서 개수를 바로 반환해서 풀이

 

array.filter()

filter 해서 그대로 특정 조건을 만족하는 요소를 걸러주고 배열로 반환

const words = ['apple', 'banana', 'cup', 'dragon', 'elephant', 'fruit', 'grape'];

const result = words.filter(word => word.length > 5);

console.log(result);   // ['banana', 'dragon', 'elephant']

 

반응형
LIST
Comments