Softeer [21년 재직자 대회 예선] 회의실 예약 (난이도2)

Yibangwon·2022년 7월 10일
0

알고리즘 문제풀이

목록 보기
32/60


정답 코드

# 9 to 18
import sys

N, M = map(int, sys.stdin.readline().split())
rooms = [] #방 이름을 정렬하기 위해 dictionary가 아닌 list로 선언
status = [[False for i in range(9)] for i in range(50)]

for i in range(N):
    rooms.append(input()) 
rooms.sort()

for i in range(M):
    r, s, e = input().split()
    s, e = int(s) - 9, int(e) - 9
    for j in range(s, e):
        status[rooms.index(r)][j] = True #해당 시간이 사용중

for i in range(N):
    print('Room %s:' % rooms[i])
    if False not in status[i]: #빈 시간이 없으면
        print('Not available')
    else:
        k = 0
        available = []
        while k < 9:
            f, t = 0, 0
            if not status[i][k]:
                f = k
                while k < 9 and not status[i][k]:
                    k += 1
                t = k - 1
                available.append([f, t]) #사용 중인 시간을 list에 추가
            k += 1
        print(len(available), 'available:')
        for o in available:
            print('{}-{}'.format(format(o[0] + 9, '02'), format(o[1] + 10, '02')))
    if i != N - 1:
        print('-----')

배운 점

간단한 코드인데 예상보다 오래 걸렸다.
처음에 room을 dictionary로 선언해서 그렇다.
원인은 경험의 부족.

후기

softeer는 오류가 많이 걸린다.
같은 코드를 입력해도 4번 에러가 뜬 뒤에 5번째가 되어서야 통과가 되었다.

profile
I Don’t Hope. Just Do.

0개의 댓글