반응형

programmers.co.kr/learn/courses/30/lessons/64063

 

코딩테스트 연습 - 호텔 방 배정

 

programmers.co.kr

import collections

def solution(k, room_number):
    
    answer = []
    room_dict = collections.defaultdict(int) # dictionary에 값이 존재하는지 따로 확인 x

    def get_room(room): # 배정 될 방을 찾아주는 함수
        visited_room = [room] # 배정 될 방을 찾기까지 탐색한 이미 배정 된 방들
        while room_dict[room] != 0:
            room = room_dict[room]
            visited_room.append(room)

        for visited in visited_room: # 다음 탐색시 빠르게 빈 방을 찾기 위해 탐색한 방들을 모두 갱신
            room_dict[visited] =  room + 1
        
        return room

    for room in room_number:
        result = get_room(room)
        answer.append(result)

    return answer

→ 효율성 테스트를 통과하기 위해 get_room시 배정되어 있는 방들을 일괄 갱신해줘야 했다.

반응형

'IT study > 알고리즘 문제 풀이' 카테고리의 다른 글

수식 최대화  (0) 2021.02.07
키패드 누르기  (0) 2021.02.05
징검다리 건너기  (0) 2021.02.02
불량 사용자  (0) 2021.02.02
튜플  (0) 2021.02.01

+ Recent posts