https://programmers.co.kr/learn/courses/30/lessons/64064
처음에 정규표현식을 써야하나 고민을 하다가 시간을 날렸다.
조합을 구해야 한다는 생각은 했지만 조합을 잘 사용하지 못했다.
permutations를 이용해 조합을 구했으니 중복된 원소들의 집합이 존재한다. 그렇기 때문에 ban_list와 순서가 맞지 않으면 건너뛴다는 생각을 하지 못했었던 것이 오답의 원인이었다.
from itertools import permutations
def solution(user_id, banned_id):
up = list(permutations(user_id,len(banned_id)))
banlist = []
for user in up:
if check(user,banned_id):
user = set(user)
if user not in banlist:
banlist.append(user)
return len(banlist)
def check(user_list,ban_list):
for i in range(len(ban_list)):
if len(ban_list[i]) != len(user_list[i]):
return False
for j in range(len(ban_list[i])):
if ban_list[i][j] == '*':
continue
if ban_list[i][j] != user_list[i][j]:
return False
return True