1️⃣ 문제

2️⃣ 풀이 방법

  1. 최대값을 찾는거니 citations를 내림차순으로 정렬하며 빠르게 접근

  2. 그러면 당연하게 h-1번째 인덱스의 인용 횟수는 h보다 커야 한다.

  3. h를 n으로 초기화해주고 하나씩 줄여 나가면서 2번 조건 확인해주기

    • 조건에 부합하면 바로 h 리턴

3️⃣ 코드

이번 코드는 쪼꼬미쓰

import Foundation

func solution(_ citations:[Int]) -> Int {
    let citationsSorted = citations.sorted(by: >)   // 내림차순 정렬
    let n = citations.count
    for h in (1...n).reversed() {
        if citationsSorted[h-1] >= h { return h }
    }
    return 0
}

4️⃣ 이 문제를 풀면서 되새긴 점

배열 내림차순 정렬

  • 배열 sorted 함수로 내림차순 정렬할 때는 by 전달인자 레이블 까먹지 말 것

    • let citationsSorted = citations.sorted(by: >)
      

반복문 역순회 방법

  • 범위에 reversed 함수 사용

    • for i in (1...n).reversed() {
              // code
          }