반응형
/* 최빈값 구하기
- 최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.
*/
func solution13(_ array: [Int]) -> Int {
// var dic = Dictionary(grouping: array) { $0 }.sorted {
// $0.value.count > $1.value.count
// }
// return dic.count > 1 && dic[0].value.count == dic[1].value.count ? -1 : dic[0].key
var dic:[Int:Int]=[:]
for num in array {
let count:Int = dic[num] ?? 0
dic[num] = count+1
}
var sorted = dic.sorted(by: {$0.value > $1.value})
var result:Int = 0
if sorted.count > 1 && sorted[0].value == sorted[1].value {
result = -1
} else {
result = sorted[0].key
}
return result
}
func solution12(_ array: [Int]) -> Int {
let sorted = Dictionary(grouping: array) { $0 }.sorted { $0.value.count > $1.value.count }
return sorted.count > 1 && sorted[0].value.count == sorted[1].value.count ? -1 : sorted[0].key
}
func solution11(_ array:[Int]) -> Int {
var maxCount:Int = 0
var result:Int = 0
let arrays:[Int] = array.sorted()
var currentNum: Int = arrays[0]
var currentCount: Int = 0
for num in arrays {
if (currentNum == num) {
currentCount += 1
} else {
if (currentCount > maxCount) {
maxCount = currentCount
result = currentNum
} else if (maxCount == currentCount) {
result = -1
}
currentNum = num
currentCount = 1
}
}
if (currentCount > maxCount) {
result = currentNum
} else if (currentCount == maxCount) {
result = -1
}
return result
}
반응형
'# 02 > Swift - CTP' 카테고리의 다른 글
[Swift] 코딩테스트 연습! Lv0. 피자 나눠 먹기 (3) (0) | 2022.11.20 |
---|---|
[Swift] 코딩테스트 연습! Lv0. 피자 나눠 먹기 (2) (0) | 2022.11.20 |
[Swift] 코딩테스트 연습! Lv0. 피자 나눠 먹기 (1) (0) | 2022.11.20 |
[Swift] 코딩테스트 연습! Lv0. 짝수는 싫어요 (0) | 2022.11.20 |
[Swift] 코딩테스트 연습! Lv0. - 기타 문제 (0) | 2022.11.19 |