[アルゴリズム/標準]1931号:会議室の手配(python)

631 ワード


  • 最初のアイデア
    2 D配列、開始時間順に並べ替えた後、最初に入った会議は会議全体(最後に終わった時間-最初に始まった時間)/2より小さいと思います.しかし手書きコードでは不可能だったので、1時間悩んで答えを見た.
  • 一度に2つの条件でソートするのがポイントです...終了時間を第1条件、開始時間を第2条件とする.
    a = [list(map(int, input().split())) for _ in range(int(input()))]
    f = sorted(a, key=lambda x: (x[1], x[0]))
    s = e = cnt = 0
    for i in f:
        s = i[0]
        if cnt == 0:
            e = i[1]
            cnt += 1
        elif e <= s:
            cnt += 1
            e = i[1]
    print(cnt)