[프로그래머스 LV4] 호텔 방 배정

Junyoung Park·2022년 9월 20일
0

코딩테스트

목록 보기
614/631
post-thumbnail

1. 문제 설명

호텔 방 배정

2. 문제 분석

유니온 파인드의 find 함수를 응용한다. 딕셔너리를 통해 해당 번호의 방에 접근 가능한지 체크, 그렇지 않다면 가능할 때까지 체크한다.

3. 나의 풀이

import Foundation

func solution(_ k:Int64, _ room_number:[Int64]) -> [Int64] {
    var result = [Int64]()
    var rooms = [Int64:Int64]()
    
    func find(node: Int64) -> Int64 {
        guard let value = rooms[node] else {
            rooms[node] = node + 1
            return node
        }
        let room = find(node: value)
        rooms[node] = room + 1
        return room
    }
    
    for requested in room_number {
        let room = find(node: requested)
        result.append(room)
    }
    return result    
}
profile
JUST DO IT

0개의 댓글