★sorted(a, key = lambda x : x[0])★그리디알고리즘★회의실배정[백준 파이썬 1931번]
2022. 11. 2. 10:23
728x90
반응형
import sys
A = int(sys.stdin.readline())
B=[]
for i in range(A):
c = list(map(int,sys.stdin.readline().split()))
B.append(c)
B = sorted(B, key = lambda x : x[0] )
C = sorted(B , key = lambda x : x[1])
print(B)
print(C)
last = 0
count = 0
for i in C:
if i[0] >= last: #i[0] = 1 last = 0 ==> last = 4 count =1
#i[0] = 3 last =4 X
#i[0] = 0 last = 4 X
#i[0] = 5 last = 4 ==> last = 5 count =2
#
last = i[1]
count+=1
print(count)
그리디는 당장의 상황을 기준으로 확장시키는 방향으로 해결
시작시간으로 먼저 정렬을 해준 후에, 종료 시간을 기준으로 정렬을 해준다.
SORTED 함수를 활용하여 정렬해준다. SORTED ( B, key = lambda x : x[0] )
==> 끝나는 시간의 오름차순으로 정렬해준다. ==> 앞의 끝나는 시간(last) 이 뒤 회의의 시작 시간(i[0])보다 작거나 같다면 count 해준다.
==> 정렬 해준것의 1번째 부터의 count 해주면 된다.
728x90
반응형
'Python(백준) > 그리디알고리즘' 카테고리의 다른 글
★VER2.0★DEQUE 활용★누적합★그리디알고리즘★ATM[백준 파이썬 11399번] (0) | 2023.01.01 |
---|---|
★그리디알고리즘★주유소[백준 파이썬 13305번] (0) | 2022.11.01 |
★데이터타입변환map★re활용한 split()★잃어버린 괄호[백준 파이썬 1541번] (0) | 2022.11.01 |
★그리디알고리즘★ 동전 0 [백준 파이썬 11047번] (0) | 2022.11.01 |