https://programmers.co.kr/learn/courses/30/lessons/64064?language=python3
permutations
를 사용해 ban 리스트길이만큼 경우의수를 뽑는다*
를 모든 종류의 문자 1개를 뜻하는 .
로 replace해줘야 한다. \w도 가능할듯)
/
는 조인할때 문자열 구분해주기 위한 것으로, 정규식 문법과 관련없습니다. 안해주면 틀리는 경우 나와서 넣어주었습니다
import re
from itertools import permutations
def solution(user_id, banned_id):
ban = '/'.join(banned_id).replace('*','.')
answer = set()
for i in permutations(user_id, len(banned_id)):
if re.fullmatch(ban, '/'.join(i)):
answer.add(''.join(sorted(i)))
return len(answer)