蟒蛇。 int条件下的重复错误

时间:2018-07-09 13:51:18

标签: python-3.x

问::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的初学者。

1 个答案:

答案 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)

完成。