본문 바로가기

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

[Algorithm] 중복된 숫자 개수 세기 (w/ Swift & Python)

배열에서 특정 요소의 개수를 구하는 방식에 대해 복습하는 알고리즘 문제이다.

이번 주에 개인 프로젝트로 진행하는 야구게임에도 사용되는 알고리즘이라서 골라보았다.

 

중복된 숫자 개수 세기

문제 설명

정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

 

제한사항
  • 0  ≤ array의 길이 ≤ 100
  • 0 ≤ array의 원소 ≤ 1,000
  • 0 ≤ n  ≤ 1,000

 

 

  • solution.swift
func solution(_ array: [Int], _ n: Int) -> Int {
    return array.filter { $0 == n }.count
}

 

매개변수 array는 배열타입의 [Int]이고, 매개변수 n은 정수타입의 Int, 반환값도 Int로 시그니처를 작성한 후,

필터링을 통해 array에서 n과 일치하는 숫자를 걸러내고, 걸러진 숫자의 개수를 반환하면 끝.

→ filter 메서드를 사용하여 조건에 맞는 숫자를 걸러내고, count 메서드를 사용하여 걸러진 숫자의 개수를 세면 된다.

 

 

  • solution.python
def solution(array, n):
    answer = array.count(n)
    return answer

 

count 메서드를 사용하여 array에서 n과 일치하는 숫자의 개수를 세고, 그 개수를 반환~!

 


 

array = [1, 2, 3, 4, 2, 2, 3]

 

array.count(n)는 배열 array에서 특정 요소 n의 개수를 세는 메서드, 이 메서드를 사용하면 주어진 배열에서 특정 요소의 개수를 간단하게 계산할 수 있다. 위의 경우, array.count(2)를 호출하면 배열 array에서 숫자 2의 개수를 세어준다.

따라서, array.count(2)의 반환값은 3이 된다. → 반복문을 사용하지 않아도 되어 간편하다.