본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/ALGORITHM

[내일배움캠프] 데일리 루틴(iOS_3회차) - 명예의 전당 (1)

이미지를 클릭하면 코딩테스트 페이지로 이동합니다

내 풀이

func solution(_ k:Int, _ score:[Int]) -> [Int] {
    var hallOfFame = [Int]()
    var result = [Int]()

    for s in score {
        hallOfFame.append(s)
        hallOfFame.sort { $0 > $1 }

        if hallOfFame.count > k {
            hallOfFame.removeLast()
        }
        result.append(hallOfFame.last!)
    }

    return result
}

 

 

solution(\_:\_:)

매개변수로 정수 k와 정수 배열 score를 받음

k : 명예의 전당에서 유지할 최대 점수 개수

score 배열: 각 날짜별 가수의 점수를 나타냄

hallOfFame 배열

명예의 전당에 있는 점수 저장

각 날짜마다 새로운 점수가 추가되며, 배열은 각 점수의 내림차순으로 정렬됩니다.

result 배열

매일 발표된 명예의 전당의 최하위 점수 저장

for 루프 : score 배열에 있는 각 점수 s에 대해 반복

각 점수를 hallOfFame 배열에 추가하고, 내림차순으로 정렬

만약 hallOfFame 배열의 길이가 k보다 크면, 가장 낮은 점수를 제거하여 명예의 전당에는 최상위 k개의 점수만 유지

현재 날짜의 명예의 전당에서 최하위 점수를 result 배열에 추가

result 배열 반환

 

 

 

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31