Search
Duplicate

불량 사용자

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

import re from collections import Counter ans = set() def match(u, b): return re.fullmatch(b, u) is not None def find(user_id, banned_id, i, state): global ans # banned_id[i]를 매치시켜봅니다. if i == len(banned_id): ans.add( tuple(sorted(state)) ) return for u in user_id: if match(u, banned_id[i]): new_user_id = user_id[:]; new_user_id.remove(u) state.append(u) find(new_user_id, banned_id, i+1, state) state.pop() def solution(user_id, banned_id): # regular expression이 매치되는지 안되는지 여부를 가지고 # 퇴각검색을 활용합니다. banned_id = [b.replace('*', '.') for b in banned_id] find(user_id, banned_id, 0, []) return len(ans)
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges