https://www.acmicpc.net/problem/19622
내 풀이😊
import sys
input = sys.stdin.readline
n = int(input())
# 회의 정보를 담을 리스트
array = []
for _ in range(n):
# 시작 시간, 끝나는 시간, 회의 인원 입력
array.append(list(map(int, input().split())))
# 시작 시간 기준 오름차순 정렬
array.sort()
dp = [0] * n
dp[0] = array[0][2]
for i in range(1, n):
dp[i] = max(dp[i - 1], dp[i - 2] + array[i][2])
print(dp[n - 1])
시간복잡도는 O(NlogN)입니다.
import sys
input = sys.stdin.readline
이 코드가 없어도 결과는 맞았습니다!! 가 나옵니다.
밑에는 위의 코드를 넣었을 때고, 위에는 넣지 않았을 때입니다.
위의 코드의 유무에 따라 시간 차이가 꽤 나서 시간초과 판정을 받을 때, 위의 코드를 삽입해주는 게 좋습니다!
백준 문제 풀이 깃허브 주소입니다 :)
'알고리즘' 카테고리의 다른 글
[백준] 16434번: 드래곤 앤 던전 | Python 파이썬 풀이 (0) | 2023.01.11 |
---|---|
[백준] 19623번: 회의실 배정4 | 파이썬 (0) | 2022.04.12 |
[백준] 19621번: 회의실 배정2 | 파이썬 (0) | 2022.04.12 |
[백준] 14601번: 샤워실 바닥 깔기 | 파이썬 (0) | 2022.04.06 |
[백준] 1946번 신입 사원 | 파이썬 (0) | 2022.03.26 |