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일 이상이 지나셔야
합니다. 현재 문제를 푸셨습니다.
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) :
readdata()
for case in range(len(testcases)) :
foodcnt = getcooks( testcases[str(case)])
print(foodcnt)
6년 전