[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를 출력합니다.

참고 자료: