会議室を手配する
白駿1931
1つの会議室が最大でN個の会議を収容することができることを求めて、重複しません.
にゅうしゅつりょく
入出力11143506573859610818181122 1312144
方法
:(開始時間、終了時間)リストに保存し、終了時間を基準に昇順に並べ替えます.
最初のエレメントの終了時間が変数に含まれ、リスト内で回転し、開始時間が設定した終了時間以上である場合、エレメントの終了時間に更新され、カウントが更新されます.-->間違っています.
知るところ
終了時間が同じ場合も考えます.
終了時間が同じ場合は、クイック開始順にソートします.
たとえば、
2
2 2
1 2
この場合、(2,2)に限ると1回の会議が可能であることを示しているが、ソートによりまず(12)を選択すれば(2)も選択可能であるため、2回の会議が可能である.
そのため、終了時間の昇順、開始時間の昇順に並べ替えます!
コード#コード#
n = int(input())
graph = []
for _ in range(n):
s, e = map(int, input().split())
graph.append((s, e))
graph.sort(key=lambda x : (x[1], x[0]))
e = graph[0][1]
ans = 1
for i in range(1, len(graph)):
if graph[i][0] >= e:
ans += 1
e = graph[i][1]
print(ans)
Reference
この問題について(会議室を手配する), 我々は、より多くの情報をここで見つけました https://velog.io/@sezeom/그리디-회의실-배정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol