알고리즘 분류: 그리디 알고리즘
https://www.acmicpc.net/problem/1931
내 풀이😊
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
'알고리즘' 카테고리의 다른 글
[백준] 14601번: 샤워실 바닥 깔기 | 파이썬 (0) | 2022.04.06 |
---|---|
[백준] 1946번 신입 사원 | 파이썬 (0) | 2022.03.26 |
[프로그래머스] Level1 체육복 | 탐욕법 | 파이썬 (0) | 2022.03.18 |
[백준] 1753번: 최단경로 | 파이썬 (0) | 2022.03.18 |
[백준] 1463번: 1로 만들기 | 파이썬 (0) | 2022.03.18 |