[swift] 정렬 함수를 사용하여 가장 많이 등장하는 원소 찾기
Swift에서 배열의 요소들 중에서 가장 많이 등장하는 원소를 찾고 싶을 때, 정렬 함수를 사용하여 간단하게 구현할 수 있습니다.
다음은 정렬 함수를 사용하여 가장 많이 등장하는 원소를 찾는 방법에 대한 예시 코드입니다.
func findMostFrequentElement(arr: [Int]) -> Int? {
let sortedArr = arr.sorted() // 배열을 오름차순으로 정렬합니다.
var currentElement = sortedArr[0] // 현재 원소를 배열의 첫 번째 원소로 초기화합니다.
var currentElementCount = 1 // 현재 원소의 등장 횟수를 1로 초기화합니다.
var mostFrequentElement = currentElement // 가장 많이 등장하는 원소를 저장하는 변수를 선언하고 초기화합니다.
var mostFrequentElementCount = currentElementCount // 가장 많이 등장하는 원소의 등장 횟수를 저장하는 변수를 선언하고 초기화합니다.
for i in 1..<sortedArr.count {
if sortedArr[i] == currentElement {
currentElementCount += 1
} else {
currentElement = sortedArr[i]
currentElementCount = 1
}
if currentElementCount > mostFrequentElementCount {
mostFrequentElement = currentElement
mostFrequentElementCount = currentElementCount
}
}
return mostFrequentElement
}
let numbers = [1, 2, 3, 4, 2, 2, 2, 3, 3, 4, 4, 4, 4]
if let mostFrequentNumber = findMostFrequentElement(arr: numbers) {
print("가장 많이 등장하는 원소는 \(mostFrequentNumber)입니다.")
} else {
print("배열이 비어있습니다.")
}
위 예시 코드에서는 정렬 함수를 사용하여 주어진 배열 numbers
를 오름차순으로 정렬한 후, 반복문을 통해 현재 원소의 등장 횟수를 계산합니다. 그리고 매 반복마다 가장 많이 등장하는 원소를 저장하는 변수 mostFrequentElement
와 그 원소의 등장 횟수를 저장하는 변수 mostFrequentElementCount
를 업데이트합니다. 반복이 끝나면 mostFrequentElement
가 가장 많이 등장하는 원소가 됩니다.
위 예시 코드를 실행하면 numbers
배열에서 가장 많이 등장하는 원소인 4를 출력합니다.
참고 자료: