본문 바로가기
Coding Test

230924 짝수 홀수 개수 - Level 0

by mmm- 2023. 9. 24.

문제 설명

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

 

제한사항

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

 

입출력 예

 

입출력 설명

입출력 예 #1

  • [1, 2, 3, 4, 5]에는 짝수가 2, 4로 두 개, 홀수가 1, 3, 5로 세 개 있습니다.

입출력 예 #2

  • [1, 3, 5, 7]에는 짝수가 없고 홀수가 네 개 있습니다.

코드

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = new int[2];
        
        for(int i=0; i<num_list.length; i++) {
            if(num_list[i]%2 == 0) {
                answer[0]++;
            } else if(num_list[i]%2 == 1) {
                answer[1]++;
            }
        }
        
        return answer;
    }
}

 

풀이

반복문을 통해 num_list 배열의 i번째의 수 % 2의 나머지가 짝수인지 홀수인지 확인 후, answer의 배열을 하나씩 증가시켜줬다.

근데 나 왜 굳이 else if를 썼지..?


다른 코드와 풀이

아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.

 

import java.util.stream.IntStream;
import java.util.Arrays;

class Solution {
    public int[] solution(int[] numList) {
        return IntStream.of((int) Arrays.stream(numList).filter(i -> i % 2 == 0).count(), (int) Arrays.stream(numList).filter(i -> i % 2 == 1).count()).toArray();
    }
}

정수배열 numList를 Arrays.stream 메서드를 통해 스트림으로 변환한다. 그 후, filter 메서드를 통해 짝수, 홀수 골라내어 count를 통해 각각의 갯수를 계산하여 IntStream.of()를 이용해 새로운 정수 스트림으로 묶고, 이를 배열로 변환 후 반환한다.


정리

Stream

: 다양한 데이터 소스를 통일된 방법으로 다루기 위함.

  • 수많은 데이터의 흐름 속에서 각각의 원하는 값을 가공하여 최종 소비자에게 제공하는 역할
  • 과정으로는 Stream 생성 - 중간연산 - 최종연산 이 있음

 

IntStream

: 스트림 클래스 중 기본형 스트림

 

filter

: 스트림내 요소에 대해서 필터링하는 작업

'Coding Test' 카테고리의 다른 글

230924 자릿수 더하기 - Level 0  (0) 2023.09.24
230924 배열의 유사도 - Level 0  (0) 2023.09.24
230923 배열 자르기 - Level 0  (0) 2023.09.23
230923 편지 - Level 0  (0) 2023.09.23
230923 배열 원소의 길이 - Level 0  (0) 2023.09.23