코딩테스트 파이썬/Softeer

Softeer 연습문제(2단계) - 회의실 예약

세용용용용 2024. 6. 26. 21:21

Candidate | Softeer Assessment UI

 

Candidate | Softeer Assessment UI

 

softeer.ai

 

나의 코드

import sys
input = sys.stdin.readline
room_n, room_ava = list(map(int, input().split()))

room_info = {}
for _ in range(room_n):
    room_name = input().split()[0]
    room_info[room_name]=[]

for _ in range(room_ava):
    now_room, now_start, now_end = list(input().split())
    now_start = int(now_start)
    now_end = int(now_end)
    room_info[now_room].append([now_start, now_end])

room_info = sorted(room_info.items(), key=lambda x:x[0])

ckckck=0
for room in room_info:
    ckckck+=1
    now_room, room_ava_info = room
    room_ava_info = sorted(room_ava_info, key=lambda x:x[0])
    can_ava = []
    if not room_ava_info:
        can_ava.append('09-18')
    else:
        if room_ava_info[0][0]>9:
            can_ava.append(f'09-{room_ava_info[0][0]}')
        for now_index in range(len(room_ava_info)-1):
            if room_ava_info[now_index+1][0]-room_ava_info[now_index][1]>0:
                can_ava.append(f'{room_ava_info[now_index][1]}-{room_ava_info[now_index+1][0]}')
        if room_ava_info[-1][-1]<18:
            can_ava.append(f'{room_ava_info[-1][-1]}-18')

    print(f'Room {now_room}:')
    if len(can_ava)==0:
        print(f'Not available')
    else:
        print(f'{len(can_ava)} available:')
    for now_can_ava in can_ava:
        print(now_can_ava)
    if ckckck!=room_n:
        print('-----')