[Programmers/Swift] Lv.0 중복된 숫자 개수

2024. 3. 8. 00:04·알고리즘/프로그래머스
728x90

문제 설명

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

 

제한사항

1 ≤ array의 길이 ≤ 100

0 ≤ array의 원소 ≤ 1,000

0 ≤ n ≤ 1,000

 

예시

 

첫 풀이

func solution(_ array:[Int], _ n:Int) -> Int {
    var result = 0
    
    // 배열 길이 제한, 정수 n 크기 제한
    guard array.count >= 1, array.count <= 100, n >= 0, n <= 1000 else { return -1 }
    
    // 배열 요소 크기 제한 0 <= 배열 요소 <= 1000
    if !array.contains(where: { $0 > 1000 || $0 < 0 }) {
        for i in 0..<array.count {
            if array[i] == n {
                result += 1
            }
        }
    }
    
    return result
}

guard를 사용하여 배열 길이, 요소를 제한 하였는데 return 0을 하는 것이 오히려 답을 틀리게 나왔다.

나머지 사람들이 푸는 것을 보니 제한사항으로 굳이 guard 처리를  할 필요가 없었다.

그리고 filter를 사용하는 것을 보았는데,, 정말 간단하게 코드를 작성하여서 filter에 대해 찾아봤다.

 

두 번째 풀이

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

 

Filter

스위프트 표준 라이브러리의 대표적인 고차함수라고한다.

컨테이너 내부의 값을 걸러서 추출하는 역할을 한다고 한다.

특정 조건에 맞게 걸러내는 역할을 하고 이 함수의 매개변수를 전달하는 함수의 반환 타입은 Bool이라고 한다.

728x90

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[Programmers/Swift] Lv.0 머쓱이보다 키 큰 사람  (0) 2024.03.13
[Programmers/Swift] Lv.0 배열 원소의 길이  (0) 2024.03.13
[프로그래머스] 문자열 반복 출력  (0) 2023.03.28
[프로그래머스] 옷가게 할인 받기  (0) 2023.03.17
[프로그래머스] 최빈값 구하기  (0) 2023.03.08
'알고리즘/프로그래머스' 카테고리의 다른 글
  • [Programmers/Swift] Lv.0 머쓱이보다 키 큰 사람
  • [Programmers/Swift] Lv.0 배열 원소의 길이
  • [프로그래머스] 문자열 반복 출력
  • [프로그래머스] 옷가게 할인 받기
bulmang
bulmang
모바일 개발자 도전
  • bulmang
    bulmang
    bulmang
  • 전체
    오늘
    어제
    • 분류 전체보기 (208) N
      • 알고리즘 (68) N
        • List (3)
        • Two Pointer (6)
        • Binary Search (4)
        • Prefix Sum (3)
        • Sort (4)
        • Brute Force (5)
        • Array (2)
        • String (4)
        • 프로그래머스 (12)
        • 백준 (9)
        • Queue (2)
        • Stack (2)
        • Recursion (12) N
      • Computer Science (16)
        • Computer Architecture (6)
        • Operating System (5)
        • Network (2)
        • 기타 (2)
        • System Programming (1)
      • Swift (70)
        • 개발 (24)
        • 정리 (25)
        • 문법 (20)
      • Flutter (24)
      • 기타 (12)
        • 후기 (12)
      • Git (6)
      • Ios 오픈소스 (5)
      • UI 디자인 (5)
      • AppleScript (2)
  • 링크

    • Notion
    • Github
  • 태그

    재귀
    알고리즘
    문법
    피플
    개발
    Java
    IOS
    Apple Developer Academy
    Xcode
    til
    백준
    FLUTTER
    코딩테스트
    riverpod
    컴퓨터구조
    협업
    today i learned
    SwiftUI
    Swift
    자료구조
  • 최근 댓글

  • 최근 글

  • 인기 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.2
bulmang
[Programmers/Swift] Lv.0 중복된 숫자 개수
상단으로

티스토리툴바