본문 바로가기
Algorithm/softeer

[파이썬]softeer: 회의실 예약

by 갈잃자 2023. 1. 24.

https://softeer.ai/practice/info.do?idx=1&eid=626&sw_prbl_sbms_sn=111569 

 

Softeer

연습문제를 담을 Set을 선택해주세요. 취소 확인

softeer.ai


단순 구현문제인데... 시간이 많이 걸림

 

dictionary에 넣은 뒤, 하나씩 빼면서 출력,,,

import sys
from collections import defaultdict

n, m= map(int, input().split())

meeting_name = defaultdict()

# 9-10-11-12-13-14-15-16-17-18
meeting_res_list = [[0 for _ in range(9)] for _ in range(n)]

for i in range(n):
    room_name = input()
    meeting_name[room_name] = i

for _ in range(m):
    name, start, end = input().split()
    for i in range( int(start)-9, int(end)-9):
        meeting_res_list[meeting_name[name]][i] = -1

meeting_name_sorted = (sorted(meeting_name.keys()))
total_cnt = 0
for key in meeting_name_sorted:
    print(f"Room {key}:")
    cnt = 0
    arr = []
    m_key = meeting_name[key]
    times = ''
    flag = False
    for meet in range(9):
        if not flag and meeting_res_list[m_key][meet] == 0:
            flag = True
            if meet == 0:
                times += "09"
            else:
                times += str(meet+9)
            times += '-'
        elif flag and meeting_res_list[m_key][meet] == 0:
            continue
        elif flag and meeting_res_list[m_key][meet] == -1:
            times += str(meet+9)
            arr.append(times)
            times = ''
            flag = False
            cnt += 1
    if flag:
        times += "18"
        arr.append(times)
        cnt += 1
    if cnt == 0:
        print("Not available")
    else:
        print(f"{cnt} available:")
        for time in arr:
            print(time)
    total_cnt+=1
    if total_cnt < n:
        print("-----")

'Algorithm > softeer' 카테고리의 다른 글

[파이썬]softeer: 전광판  (0) 2023.01.27
[파이썬]softeer: 비밀 메뉴  (0) 2023.01.26
[파이썬]softeer: 바이러스  (0) 2023.01.25
[파이썬]softeer: 금고털이  (1) 2023.01.23

댓글