1seul357

[BOJ] 회의실 배정 본문

알고리즘/백준

[BOJ] 회의실 배정

1seul 2022. 1. 19. 09:23
N = int(input())
list = []
count = 1

for i in range(N):
    s, e = map(int, input().split())              # 회의실 시간 입력받기
    list.append([e, s])                           # 끝나는 시간 기준으로 정렬하기 위해 e, s 순서로 리스트에 넣기
list.sort()                              # 리스트 정렬

now = list[0][0]                         # 가장 앞 시간을 now 변수에 넣고,
for i in range(1, N):                    # 1부터 N까지 반복하면서 사용할 수 있는 회의 최대 개수 구하기!
    if now <= list[i][1]:                # 다음 회의의 시작 시간이 현재 회의의 끝난 시간보다 크다면
        now = list[i][0]                 # now를 다음 회의의 끝나는 시간으로 바꿔주기
        count += 1                       # 회의 개수 + 1

print(count)

 

문제

  1. 사용할 수 있는 회의의 최대 개수를 출력

해결방법

  1. 끝나는 시간 기준으로 정렬
  2. 현재 회의의 끝나는 시간과 다음 회의의 시작 시간 비교
  3. now 변수 사용해서 끝나는 시간 바꿔주기

주의사항

  • 반복문 쓸 때, 범위 설정을 1부터 N까지 해야 함

'알고리즘 > 백준' 카테고리의 다른 글

[BOJ] 소수 찾기  (0) 2022.01.23
[BOJ] DFS와 BFS  (0) 2022.01.23
[BOJ] AC  (0) 2022.01.09
[BOJ] 스타트링크  (0) 2022.01.08
[BOJ] 집합의 표현  (0) 2022.01.05