백준 문제 링크
강의실 예약 시스템
- 강의실 번호를 key, 이용 시작 시각과 끝 시각을 value로 하는 딕셔너리를 만든다.
첫 시작은 모두 다 가능하므로 'YES' 출력- 반복문을 돌며 딕셔너리에 이미 강의실 번호가 있다면,
기존 value의 끝 시각(a)과 새로운 value의 시작 시각(b)을
비교한다.- a > b이면 'No'를 출력하고 그 외에는 새로운 value로 교체하고 'YES'를 출력한다.
import sys #이거 안쓰면 시간초과남
N,M = map(int, sys.stdin.readline().split())
dic = {}
for _ in range(M):
x = list(map(int, sys.stdin.readline().split()))
if x[0] not in dic:
dic[x[0]] = [x[1],x[2]]
print('YES')
else:
if dic[x[0]][1] > x[1]:
print('NO')
else:
dic[x[0]] = [x[1],x[2]]
print('YES')
N,M = map(int, input().split())
dic = {}
for _ in range(M):
x = list(map(int, input().split()))
if x[0] not in dic:
dic[x[0]] = [x[1],x[2]]
print('YES')
else:
if dic[x[0]][1] > x[1]:
print('NO')
else:
dic[x[0]] = [x[1],x[2]]
print('YES')
첨엔 input을 사용해 코드를 제출했는데, 시간초과가 나서 sys.stdin.readline().split()을 사용했다.