샘성의 iOS 개발 일지

[코딩테스트 입문] 진료 순서 정하기 본문

Algorithm/프로그래머스

[코딩테스트 입문] 진료 순서 정하기

SamusesApple 2023. 5. 9. 13:55
728x90

 

문제 설명:

  외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.

 

 

 

 

내 풀이:

import Foundation

func solution(_ emergency:[Int]) -> [Int] {
    // [응급도: 위급한순위] 형태의 딕셔너리 변수
    var dic = [Int: Int]()
    // 결과 변수
    var result = [Int]()
    // dic변수의 value에 들어갈 순서 변수
    var value = 0
    // 큰 순서대로 기존 배열 정렬 후 loop문 돌리기
    for i in emergency.sorted(by: >) {
        value += 1
        // i에 대한 값으로 순서가 들어올 것 [75: 1, 36: 2] 이런식으로..
        dic[i] = value
    }
    // 이제 원본을 갖고 loop문을 돌려서 원래 index 구해서 순서대로 result 배열에 넣기
    for e in emergency {
        result.append(dic[e]!)
    }
    return result
}
728x90