불량 사용자
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 풀이
- 각 depth별 가능한 유저 result에 모음
- 중복되지 않는 순열 만들기
- 순열들을 모아 set으로 중복 없애기
- 📍tuple(sorted(selected))
- set에는 리스트가 들어갈 수 없기 때문에 sorted한 후 tuple
- = 중복 없는 튜플 만들어짐
- 📍tuple(sorted(selected))
def solution(user_id, banned_id):
answer = set()
result=[]
for bann in banned_id:
tmp=set()
for user in user_id:
if len(bann)!=len(user):
continue
for b,u in zip(bann,user):
if b=='*':
continue
if b!=u:
break
else:
tmp.add(user)
result.append(tmp)
def dfs(depth, selected):
nonlocal answer
if depth == len(banned_id):
answer.add(tuple(sorted(selected)))
return
for user in result[depth]:
if user not in selected:
selected.append(user)
dfs(depth + 1, selected)
selected.pop()
dfs(0,[])
return len(answer)
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][구현] 2개 이하로 다른 비트 (0) | 2025.05.13 |
|---|---|
| [프로그래머스][Heap] 호텔 대실 (0) | 2025.05.02 |
| [프로그래머스][BFS] 리코쳇 로봇 (1) | 2025.04.24 |
| [프로그래머스][투포인터] 보석 쇼핑 (1) | 2025.04.24 |
| [프로그래머스][BFS] 무인도 여행 (0) | 2025.04.11 |