[프로그래머스] 최빈값 구하기(Swift)

이창형·2023년 1월 2일
1

코드

import Foundation

func solution(_ array:[Int]) -> Int {
    var dictionary = [Int: Int]()
    var keyNum = 0
    var count = 0
    
    for i in array {
        // 있는 Key값이면 실행
        if dictionary.contains {$0.key == i} {
            // Value에 1을 더함
            dictionary[i]! += 1
        } else {
            // 처음 들어오는 Key를 추가하고 Value에 1을 추가
            dictionary[i] = 1
        }
    }
    // i는 Key를 j는 Value를 나타냄
    for (i, j) in dictionary {
        // Value가 dictionary에서 가장큰 값이면 실행
        if j == dictionary.values.max() {
            count += 1
            keyNum = i
        }
    }
    // 3항 연산자 count가 1이면 keyNum을 return, 1이 아니면 -1을 return
    return count == 1 ? keyNum : -1
}

설명

  • Dictionary를 잘 쓸 수 있는지의 문제입니다.
  • Array의 값을 Dictionary의 Key에 넣고 갯수를 Value에 넣어 정답을 구했습니다.

회고

  • Dictionary를 잘 다루지 못해 어려웠습니다.
  • Dictionary와 친해질 수 있는 시간이었습니다.
profile
iOS Developer

0개의 댓글