BOJ - 30019

주의·2023년 11월 30일
0

boj

목록 보기
17/214

백준 문제 링크
강의실 예약 시스템

❓접근법

  1. 강의실 번호를 key, 이용 시작 시각과 끝 시각을 value로 하는 딕셔너리를 만든다.
    첫 시작은 모두 다 가능하므로 'YES' 출력
  2. 반복문을 돌며 딕셔너리에 이미 강의실 번호가 있다면,
    기존 value의 끝 시각(a)과 새로운 value의 시작 시각(b)을
    비교한다.
  3. 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()을 사용했다.

0개의 댓글