白駿1931会議室配分問題Python解答


会議室を手配する

解きほぐそう

何かの音

ヒントを見て理解した
自分が学習室を使っているボスを想像してみてください.
まず、私の目的はできるだけ多くの学習室を手配して、たくさんのお金を稼ぐことです.
もしお客さんが会議をしたい時間帯を書いたら.
私はできるだけコンパクトで空いていないように時間を手配して、それを見て、できるだけ多く予約します.
これはグリディとソートアルゴリズムです!
つまり今日は誰がジャストディの部屋を借りますか?数を数える
並んでいる人は順番に可能な時間帯を書きます.
管理者の私が見た後、できるだけ多くの人に利用させます.
どうすればいいの?
終了時間が早くなります.
開始時間が一番早かったのでやってくれましたが、毎回10時間会議をするのは損です.
だからまずは早く終わる人たち!
でも終了時間が同じなら開始時間が遅い人から
同じ会議は2時に終わり、1組は午前10時、1組は午後1時にもちろん後者になります.
N = int(input()) # 몇 명?
list = [] # 저장할 리스트

for i in range(N): # 출발 종료시간을 한명한명 받아줌
    start, end = map(int, input().split())
    list.append([start, end])

list.sort(key=lambda x:(x[1],x[0])) # 먼저 1번 인덱스 정렬, 그다음 0번 정렬

count = 1 # 예약 카운트  종료 시간이 제일 빠른애는 일단 등록하고 시작했으니 1부터

end = list[0][1] # 종료시간인 end 현재는 제일 첫 리스트
for j in range(1, N):
    if list[j][0] >= end: # 현재 비교하는 사람의 시작 시간이 현재 사람의 종료시간보다 같거나 늦다면
        count +=1 # 예약 하나 늘었고
        end = list[j][1] # 이제 현재 예약한 사람의 종료시간으로 바꿔줌
        
print(count)
終わりました.^*^;