python 런타임 오류가 나요

  • kabina
    kabina

    문제중에 알러지가 많은 친구들을 풀고 제출을 했는데..
    런타임 오류가 납니다.
    코드는 아래 적긴 했는데.. 이유를 모르겠습니다.
    처음 제출하는 거라서 제가 잘 모르고 했을수도 있습니다만,
    자주실수하는 오류나 이런데 찾아봐도 잘 모르겠네요..

    from itertools import combinations
    import sys

    filedata = list()
    testcases = {}
    testcase = list()

    def readdata_new() :
    cases = lambda: sys.stdin.readline()
    for cs in range(int(cases)) :
    tc = list()
    friends, foods = map(int, lambda: sys.stdin.readline().split())
    friendslist = lambda: sys.stdin.readline().split()
    frifod = [friends, foods]
    tc.append(frifod)
    tc.append(friendslist)
    for i in range(0, foods) :
    availfood = lambda: sys.stdin.readline().split()
    tc.append(availfood)
    testcases[str(cs)] = tc

    def readdata() :
    cases = sys.stdin.readline()
    for cs in range(int(cases)) :
    tc = list()
    friends, foods = map(int, sys.stdin.readline().split())
    friendslist = sys.stdin.readline().split()
    frifod = [friends, foods]
    tc.append(frifod)
    tc.append(friendslist)
    for i in range(0, foods) :
    availfood = sys.stdin.readline().split()
    tc.append(availfood)
    testcases[str(cs)] = tc

    def selectfoods(lst, foodcond): ## lst : 조합, foodcond : 음식별 먹을 수 있는 친구들
    selectedfoods = list()
    for f in lst:
    selectedfoods.extend(foodcond[int(f)][1:])
    return selectedfoods

    def getcooks(cond) :

    foodcnt = cond[0][1]
    foodcond = cond[2:2+foodcnt]
    minfood = foodcnt
    lst = list()
    for i in range(2, foodcnt+1) :
        lst = list(combinations(list(j for j in range(int(foodcnt))), int(i)))
        for j in lst :
            friendsname = list(cond[1])
            selectedfoods = selectfoods(j, foodcond)
            for fname in selectedfoods :
                if fname in friendsname :
                    friendsname.remove(fname)
                    if(len(friendsname)==0 and minfood > len(j)) :
                        minfood = len(j)
                        return minfood

    readdata()
    for case in range(len(testcases)) :
    foodcnt = getcooks( testcases[str(case)])
    print(foodcnt)


    6년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.