[白俊]1931号-会議室の手配


初めての試み

T = int(input()) # 회의의 수
start, end, cnt = 0,0,0
for i in range(T):
    A, B = map(int,input().split())
    if (end <= A):
        start = A
        end = B
        cnt += 1
print(cnt)
T個の会議を入力すると、順番に始まると思います.
T個の会議は入力順ではないので、入力した会議を昇順で並べ替える必要があります
->また、(1、10)、(2、2)、(3、5)がこれらの会議の終了時間に従ってソートされていなければ、(1、10)先に会議を占領した場合、残りの会議は実行できません.そのため、会議の最大時間を基準にしたソート作業が必要です.

二次試行

T = int(input()) # 회의의 수
start, end, cnt = 0,0,0
lst = []

for i in range(T): # T개의 회의를 입력받고 회의들을 lst에 저장한다.
    A, B = map(int,input().split())
    lst.append([A,B])

lst.sort(key=lambda x : (x[1],x[0])) # 끝나는 시간을 기준으로 오름차순함 정렬한 뒤, 시작하는 시간으로 오름차순 정렬

for i in range(T):
    if (lst[i][0] == lst[i][1]):
        cnt += 1
    elif (end <= lst[i][0]):
        start = lst[i][0]
        end = lst[i][1]
        cnt += 1

print(cnt)
25%前後でエラーが発生しました.
問題中の反例テストでも良いのですが、どの部分が問題なのかわかりません
lst.sort(key = lambda x: (x[1],x[0]))
->(x[1],x[0])は、終了時間を基準としてソートし、開始時間を基準としてソートします.

最終コード

T = int(input()) # 회의의 수
start, end, cnt = 0,0,0
lst = []

for i in range(T): # T개의 회의를 입력받고 회의들을 lst에 저장한다.
    A, B = map(int,input().split())
    lst.append([A,B])

lst.sort(key=lambda x : (x[1],x[0])) # 끝나는 시간을 기준으로 오름차순함 정렬한 뒤, 시작하는 시간으로 오름차순 정렬

for i in range(T):
    if (end <= lst[i][0]):
        end = lst[i][1]
        cnt += 1
print(cnt)
これ以上条件をつける必要はありません...終了時間を基準に昇順で並べ替えた後、開始時間を基準に昇順で並べ替えると、無条件(4,4)のように開始時間と終了時間が同じ会議がカウントされます.