본문 바로가기

iOS 앱 개발자 프로젝트/알고리즘 코드카타

[Algorithm] 짝수 홀수 개수 (w/ Swift)

 

짝수 홀수 개수

 

프로그래머스

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

programmers.co.kr

 

 

 

풀이 1 ▽

func solution(_ num_list:[Int]) -> [Int] {
    // 주어진 정수 배열에서 홀수와 짝수의 개수를 세는 함수

    var evenNumber = 0  // 짝수의 개수를 저장하는 변수
    var oddNumber = 0   // 홀수의 개수를 저장하는 변수

    for i in num_list {
        if i % 2 == 0 {
            evenNumber += 1  // 짝수일 경우, 짝수 개수를 1 증가
        } else {
            oddNumber += 1   // 홀수일 경우, 홀수 개수를 1 증가
        }
    }
    
    // 최종적으로 짝수의 개수와 홀수의 개수를 배열로 반환
    return [evenNumber, oddNumber]
}

 

 

 

풀이 2 ▽  (filter를 사용한 방법) 

func solution(_ num_list:[Int]) -> [Int] {
    // 정수 배열에서 짝수와 홀수의 개수를 세어 반환하는 함수
    
    return [
        num_list.filter{ $0 % 2 == 0 }.count, 
        // 짝수(나머지가 0)만 필터링하고, 그 개수를 세어 배열의 첫 번째 요소로 반환
        num_list.filter{ $0 % 2 == 1 }.count  
        // 홀수만 필터링하고, 그 개수를 세어 배열의 두 번째 요소로 반환
    ]
}

 

filter 메소드의 클로저는 각 요소를 순회하며 단 하나의 인자(해당 요소)만을 받기 때문에, 여기서는 $0이 각 요소를 참조한다.

 

num_list.filter{ $0 % 2 == 0 }.count : 배열에서 짝수(나머지가 0인 경우)만 필터링하고, 그 개수를 세어 배열의 첫 번째 요소로 반환

num_list.filter{ $0 % 2 == 1 }.count : 배열에서 홀수(나머지가 1인 경우)만 필터링하고, 그 개수를 세어 배열의 두 번째 요소로 반환