[BOJ]白俊1931号会議室(Python)の手配
質問する
会議室があり、それを使用するN個の会議について、会議室使用表を作成します.各会議Iには、開始時間と終了時間があり、各会議が重複しないように、会議室の最大数を見つけます.しかし、会議が始まると、途中で中断することはできません.一つの会議が終わると同時に、次の会議が始まる可能性があります.会議の開始時間と終了時間は同じかもしれません.この場合、最初から終わっていると考えられます.
入力
しゅつりょく
例
入力します。
11
1 4
3 5
0 6
5 7
3 8
5 9
6 10
8 11
8 12
2 13
12 14
出力します。
4
に答える
n = int(input())
meeting = [list(map(int, input().split())) for _ in range(n)]
meeting.sort(key=lambda x: (x[1], x[0])) # 회의 정렬. 끝나는 시간 오름차순 기준.
availableMeeting = 0 # 가능한 회의 수
numOfMeeting = len(meeting) # 총 회의 수
endTime = meeting[0][0] # 현재 회의 끝나는 시간.
for i in range(numOfMeeting): # 모든 회의 확인
if endTime > meeting[i][0]: # 현재 순서 회의가 현재 진행중인 회의와 시간이 겹치면 패스
continue
# 회의 시간이 겹치지 않은 경우
endTime = meeting[i][1] # 회의 끝나는 시간 업데이트
availableMeeting += 1 # 가능한 회의 수 1 증가
print(availableMeeting)
会議の終わりの早い順に手配する.当初は会議の長さは短い順だったが、変数が出て失敗した.
開始時間順にやったけど失敗した
終了時間順にやってくれて良かったです.
会議の終了時間順に並べて、会議時間が重複しない場合に会議を行います.
Reference
この問題について([BOJ]白俊1931号会議室(Python)の手配), 我々は、より多くの情報をここで見つけました https://velog.io/@deannn/BOJ-백준-1931번-회의실-배정-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol