[백준] 1931번

코린이·2022년 6월 10일
0

백준

목록 보기
36/38

📢 "회의실 배정 1931번" 문제

백준 문제 링크

🔎 풀이

사용 언어 : python
count : 회의를 할 수 있는 개수
office_t : [회의 시작시간, 끝나는 시간]

1.정렬을 하여 시작하는 시간이 빠를 수록 list(office_t)의 앞에 오도록 한다.
2. office_t[0]의 끝나는 시간을 기준으로 office_t[1]의 시작하는 시간과 끝나는 시간을 비교한다.

  • office_t[0]의 끝나는 시간 > office_t[1]의 시작하는 시간 and office_t[0]의 끝나는 시간 > office_t[1]의 끝나는 시간
    : office_t[0]을 삭제한다.
  • office_t[0]의 끝나는 시간 <= office_t[1]의 시작하는 시간
    : count를 +1 해주고 office_t[0]을 삭제해준다.
  • 나머지 경우는 office_t[1]을 삭제해준다.

count 가 1부터 시작하는 이유
while 이 len(office_t)>=2동안 반복되기 때문에 마지막 회의를 추가를 못해준다.
그래서 1부터 시작

🔎 코드

import sys
n = int(input())
office_t = []
for _ in range(n):
    x = list(map(int, sys.stdin.readline().split()))
    office_t.append(x)
office_t.sort()

count = 1
while len(office_t) >= 2:
    if office_t[0][1] > office_t[1][0] and office_t[0][1] > office_t[1][1]:
        del office_t[0]
    elif office_t[0][1] <= office_t[1][0]:
        del office_t[0]
        count += 1
    else:
        del office_t[1]
print(count)
profile
초보 개발자

0개의 댓글