문제 : https://programmers.co.kr/learn/courses/30/lessons/64064?language=python3
▶ 코드
import re
from itertools import product
def solution(user_id, banned_id):
# 1.정규표현식 매칭하기
my =[]
for p in banned_id:
temp = []
p = p.replace('*','.')
for a in user_id:
res = bool(re.match(p, a))
if (res and len(p)==len(a)):
temp.append(a)
my.append(temp)
#print(my)
# 2.조합 구하기
lst = list(product(*my))
#print(lst)
answer = []
for a in lst:
if len(a) == len(set(a)):
tmp_lst = list(a)
tmp_lst.sort()
#print(tmp_lst)
if tmp_lst not in answer:
answer.append(tmp_lst)
#print(len(answer))
return len(answer)
#solution(["frodo", "fradi", "crodo", "abc123", "frodoc"],["fr*d*", "abc1**"])
#solution(["frodo", "fradi", "crodo", "abc123", "frodoc"], ["*rodo", "*rodo", "******"])
'■코테 기출문제 > 2019 카카오 개발자 겨울 인턴십' 카테고리의 다른 글
[Level 3] 징검다리 건너기 (0) | 2020.05.21 |
---|---|
[Level 2] 튜플 (0) | 2020.05.13 |
[Level 1] 크레인 인형뽑기 게임 (0) | 2020.05.13 |