본문 바로가기

컴퓨터/코테

프로그래머스 호텔 방 배정

import sys
sys.setrecursionlimit(10000)

def find(room_number, assignment):
    if room_number not in assignment :
        assignment[room_number] = room_number + 1
        return room_number
    empty_room = find(assignment[room_number], assignment)
    assignment[room_number] = empty_room + 1
    return empty_room

def solution(k, room_number):
    answer = []
    assignment = {}
    for request_room_number in room_number:
        num = find(request_room_number, assignment)
        answer.append(num)
    return answer

print(solution(10,[1,1,1,1,1,1,2,7,7]))

재귀함수로 푸는 솔루션 참고해서 푼 문제.

재귀함수 공부하기 너무 좋은 문제인 것 같다. 주중에 다시 한번 풀어보면서 감을 익혀야겠다.