[白俊]1931号会議室、Pythonを手配
12279 ワード
質問する
白駿1931号。
https://www.acmicpc.net/problem/1931
に答える
sortメソッドの使用
すべての会議は開始時間の昇順に並べられています.
最も早い開始時間の会議を会議変数に配置します.
会議が重複しないように、次の会議と比較し続けます.
次回の会議がもっと早く終わる場合は、会議に次の会議に参加し、cnt+=1、
ドア回りに繰り返すから
上記の例を引き続き使用して1を入力してください.
import sys
input = sys.stdin.readline
N= int(input()) #회의 수
timeTable = []
for i in range(N):
timeTable.append(list(map(int,input().split())))
#[[A회의 시작시간, A회의 끝나는 시간],[B회의 시작시간, B회의 끝나는 시간] ... ]
#전체 회의를 위의 형태로 만들어서 사용하려고 함.
timeTable.sort() #회의 시작 시간 기준으로 오름차순 정렬
#이때 회의 시작 시간이 같으면 끝나는 시간을 기준으로 오름차순
timeTableは次のようにソートされます.[[0, 6], [1, 4], [2, 13], [3, 5], [3, 8], [5, 7], [5, 9], [6, 10], [8, 11], [8, 12], [12, 14]]
meeting = timeTable[0]
meetingCnt = 1
開始時間の一番早い会議をmeetingに設定1回目の会議数1、以降は毎回次の会議に移る場合+=1
for i in range(1, N): #두 번째 회의부터 마지막 회의까지, 첫 번째 회의는 meeting
if meeting[0] < timeTable[i][0]:
次の会議の開始時間は、会議の開始時間に等しいか、または遅い.次回の会議の開始時間が会議と同じであれば、終了時間は次回の会議の開始時間と同じです.
[0,6],[1,4]のように,次の会議の開始時間が遅い場合に対処すればよい.
for i in range(1, N):
if meeting[0] < timeTable[i][0]:
if meeting[1] <= timeTable[i][0]:
meeting = timeTable[i]
meetingCnt += 1
elif meeting[1] >= timeTable[i][1]:
meeting = timeTable[i]
2番目のif文:[0,6],[7,10]会議の終了時間が次の会議の開始時間より早い場合、次の会議を会議に入れ、meetingcnt+=1にする.Elif文:[0,6],[1,4]のように、会議の終了時間が次の会議の終了時間より遅い場合は、会議を次の会議の値に変更します.
このとき[0,6]は[1,4]に置き換えられるのでカウントは行われない.
print(meetingCnt)
このようにmeetingcntを印刷すればいいと思っていましたが、やはり間違っていました.わかりませんが、会議の開始時間と会議の終了時間が同じであれば、
たとえば、[4,4],[5,5]にこの値が表示される場合があります.
会議の開始時間と終了時間が同じ場合は...
elif meeting[0] == meeting[1]:
meeting = timeTable[i]
meetingCnt += 1
したがって、例外的に、会議の開始時間と終了時間が同じである場合、追加コードは、次の会議を会議に入れてカウントする.完全なコード
import sys
input = sys.stdin.readline
N= int(input())
timeTable = []
for i in range(N):
timeTable.append(list(map(int,input().split())))
timeTable.sort()
meeting = timeTable[0]
meetingCnt = 1
for i in range(1, N):
if meeting[0] < timeTable[i][0]:
if meeting[1] <= timeTable[i][0]:
meeting = timeTable[i]
meetingCnt += 1
elif meeting[1] >= timeTable[i][1]:
meeting = timeTable[i]
elif meeting[0] == meeting[1]:
meeting = timeTable[i]
meetingCnt += 1
print(meetingCnt)
会議の開始時間と会議の終了時間は同じで、これは不愉快な問題です.Reference
この問題について([白俊]1931号会議室、Pythonを手配), 我々は、より多くの情報をここで見つけました https://velog.io/@superhong/백준-1931번-회의실-배정-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol