[Python] 소프티어 LV.2_회의실 예약

szlee·2023년 11월 3일
0

알고리즘 PS

목록 보기
1/12

소프티어 LV.2_회의실 예약


import sys

n, m = map(int, sys.stdin.readline().split())

# 회의실 이름 오름차순
room_name, time_table = [], [[] for _ in range(n)]
for _ in range(n):
  name = sys.stdin.readline().rstrip()
  room_name.append(name)
room_name.sort()

for _ in range(m):
  time = sys.stdin.readline().rstrip()
  car, start, end = reserve = time.split()
  start, end = int(start), int(end)
  time_table[room_name.index(car)].append([start, end])
  time_table[room_name.index(car)].sort()
  
  
result = [[] for _ in range(n)]
for i in range(n):
  if len(time_table[i]) > 0:
    if time_table[i][0][0] > 9:
      result[i].append([9, time_table[i][0][0]])
    if time_table[i][-1][-1] < 18:
      result[i].append([time_table[i][-1][-1], 18])
  else:
    result[i].append([9, 18])
  
      
for k in range(n):
  if len(time_table[k]) >= 2:
    for j in range(len(time_table[k])-1):
      e = time_table[k][j][-1]
      s = time_table[k][j+1][0]
      if s-e>0:
        result[k].append([e, s])
  result[k].sort()


for x in range(n):
  print('Room '+room_name[x]+':')
  if len(result[x]) == 0:
    print('Not available')
  else:
    print(str(len(result[x]))+' available:')
    for y in range(len(result[x])):
      print(str(result[x][y][0]).zfill(2)+'-'+ str(result[x][y][1]).zfill(2))
  
  if x < n-1:
    print('-----')
    

Python
스트링 앞에 0 채우기 : zfill()
"2".zfill(3) => "002"
(아니면 "0"*2+"2" => "002" 이런식으로 직접 채워도 됨)

스트링 앞에 특정 문자 채우기 : rjust()
"2".rjust(3, 'a') => "aa3"

profile
🌱

0개의 댓글