본문 바로가기

코딩테스트 스터디

코딩테스트 연습 - 짝수 홀수 개수 (JAVA)

프로그래머스 코딩테스트 입문 0단계 문제입니다

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

 

📢 문제 설명

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

 

⭕ 정답 코드

1. IntStream 풀이

직접 풀어본 풀이입니다

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[2];

        //1> IntStream을 이용한 풀이
        answer[0] = (int)IntStream.of(num_list).filter(i -> i%2==0).count();
        answer[1] = (int)IntStream.of(num_list).filter(i -> i%2==1).count();

        return answer;
    }
}
  • answer에 방 두개 할당
  • num_list로 IntStream 생성
  • filter로 짝수/홀수인 것만 남겨놓고
  • count()해서 해당하는 answer방에 넣기
class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[2];

        //2> 반복문을 이용한 풀이
        for(int i = 0; i<num_list.length; i++)
            answer[num_list[i] % 2]++;

        return answer;
    }
}
  • 배열 길이 만큼 반복하면서
  • 배열 원소를 2로 나누었을때 나머지가 0이면 0방에 +1, 1이면 1방에 +1

✅ 회고

Stream에만 치우치지 말고 연산자로 단순하게 풀 수 있는 방법도 고민해보자