728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/64064
import re
def dfs(b,s,visit, user, ban):
if b == len(ban):
string = ""
for i in range(len(user)):
if i in visit:
string += str(i)
s.add(string)
return s
for i in range(len(user)):
if i in visit:
continue
rb = re.compile(ban[b].replace("*","."))
if rb.fullmatch(user[i]): # 두 문자열 길이까지 일치
visit.append(i)
dfs(b+1,s,visit,user,ban)
visit.pop()
return s
def solution(user, ban):
s = set()
visit = []
s = dfs(0, s, visit, user, ban)
return len(s)
728x90
반응형
'Algorithm Problems' 카테고리의 다른 글
[카카오_인턴][Python] 수식 최대화 (0) | 2021.09.22 |
---|---|
[프로그래머스][Python] 124 나라의 숫자 (0) | 2021.09.21 |
[백준][Python] 19538번 루머 - 그래프,BFS (0) | 2021.09.17 |
[백준][Python] 11724번 연결 요소의 개수 - DP (0) | 2021.09.10 |
[백준][Python] 2597번 계단 오르기 - DP (0) | 2021.09.03 |