알고리즘 분류: 그리디 알고리즘

 

https://www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

 

내 풀이😊

n = int(input())

time = []
for _ in range(n):
    a, b = map(int, input().split())
    # 끝나는 시간, 시작 시간 순으로
    time.append([b,a])

# 끝나는 시간을 기준으로 오름차순 정렬
time.sort()

count, end = 0, 0
for i in time:
    # 직전 회의랑 겹치지 않으면 선택
    if end <= i[1]:
        count += 1
        end = i[0]

print(count)

시간복잡도는 정렬 때문에 O(NlogN)입니다. 부족한 부분은 말해주시면 감사하겠습니다 :)

 

 

 

아래는 백준 문제 풀이 깃허브 주소입니다.

https://github.com/Yiseull/baekjoon

 

GitHub - Yiseull/baekjoon

Contribute to Yiseull/baekjoon development by creating an account on GitHub.

github.com

 

+ Recent posts