问::Aleksa参加除夕派对!他的房子有个神奇的门道,每秒只能允许人进入,而且他知道人会出现。
如果两位客人同时到达,一位客人必须等待另一位客人进入。如果两个客人在不同的时间到达,则首先到达的客人必须先进入。
给出所有客人的到达时间,确定最后一位客人的进入时间。
输入格式
第一行包含一个整数,表示来宾数目。 第二行包含整数,其中guest的到达时间。
约束
输出格式
打印最后一位客人进入魔术门的时间。
Sample Input 1:
8
2 2 2 2 4 4 4 6
Sample Output 1:
9
Sample Input 2:
3
2000 2015 2015
Sample Output 2:
2016
这是我的代码>请告诉我错误并评价我的逻辑
N=int(input())
pop=list(map(int,input().split()))
na=[]
kar=[]
count=0
for x in range(6666666666666):
if pop!=list():
ol=min(pop)
for item in pop:
if item==ol:
na.append(item)
pop.remove(item)
else:
pass
kol=len(na)
na=[]
if kar==list():
count=ol+(kol-1)
kar.append(count)
elif kar!=list() and kar[-1]>ol:
top=kar[-1]+kol
kar.append(top)
elif kar!=list() and kar[-1]<ol:
pop=ol+kol-1
kar.append(pop)
elif pop==list():
print(kar[-1])
break
我遇到这样的错误:
Traceback (most recent call last):
File "solution.py", line 8, in <module>
ol=min(pop)
TypeError: 'int' object is not iterable
有什么建议,请告诉我我的逻辑是否正确并且足够好?我是一个三周前开始使用python的初学者。
答案 0 :(得分:0)
您要求对您的逻辑进行评分。这不是您的例外的答案(请参阅注释),而是您的解决方案:
编程的第一步是思考该怎么做:
时间很重要
没有客人可以早于0到达
_ = input() # dont care
timeData = list(map(int,input().split()))
lastGuest = -1 # time the lastGuest entered, init to before anybody arrived
for time in timeData:
if time > lastGuest: # arrival later then lastGuest, so thats the new lastGuest time
lastGuest = time
elif time <= lastGuest: # arrival earlier or at same time then lastGuest: we enter at +1
lastGuest += 1
print(lastGuest)
完成。