제재 아이디
: 불량 사용자 목록에 매핑된 응모자 아이디이벤트 응모자 아이디 목록이 담긴 배열 user_id와 불량 사용자 아이디 목록이 담긴 배열 banned_id가 매개변수로 주어질 때, 당첨에서 제외되어야 할 제재 아이디 목록은 몇 가지 경우의 수가 가능한지 return 하도록 solution 함수를 완성해주세요.
from copy import deepcopy
def solution(user_id, banned_id):
answer = []
maps = {}
for ban in banned_id:
if ban not in maps:
for user in user_id:
if check(ban, user):
if ban in maps:
maps[ban].append(user)
else:
maps[ban] = [user]
solve(maps, 0, [], banned_id, len(banned_id), answer)
return len(answer)
def check(ban, user):
if len(ban) != len(user):
return False
for w in range(len(ban)):
if ban[w] != user[w] and ban[w] != '*':
return False
return True
def solve(maps, index, result, banned_id, length, answer):
if index == length:
tmp = sorted(deepcopy(result))
if tmp not in answer:
answer.append(tmp)
return
for m in maps[banned_id[index]]:
if m not in result:
result.append(m)
solve(maps, index+1, result, banned_id, length, answer)
result.pop()