Algorithm Problems

[카카오_인턴][Python] 불량 사용자 - DFS/정규식

WakaraNai 2021. 9. 17. 23:33
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/64064

 

코딩테스트 연습 - 불량 사용자

개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량

programmers.co.kr

 

 

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
반응형