시작이 반

[백준] 1931번 (python 파이썬) 본문

알고리즘/백준

[백준] 1931번 (python 파이썬)

G_Gi 2021. 2. 28. 21:50
SMALL

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

 

그리디 문제이다.

 

 회의가 끝나는 시간을 기준으로 오름차순으로 정렬을 한 후 그 안에서 시작 시간을 기준으로 정렬을 다시한다.

 

그 후 제일 먼저 끝나는 회의를 선택하고 다음으로 선택했던 회의 시간의 끝나는 시간보다 큰 시작 시간을 선택한다.(이미 끝나는 시간으로 정렬이 되어있기 때문에 고려안해두됨)

 

n = int(input())
input_list = list()
result_list = list()
for i in range(n):
    start, end = map(int, input().split())
    term = end - start
    input_list.append((start, end, term))

input_list.sort(key=lambda x: (x[1], x[0]))

for i in range(n):
    if i == 0:
        result_list.append(input_list[0])
        result = input_list[0]
    else:
        if input_list[i][0] >= result[1]:
            result = input_list[i]
            result_list.append(result)

print(len(result_list))
LIST