[プログラマー]不良ユーザー(Python)
6495 ワード
Link
https://programmers.co.kr/learn/courses/30/lessons/64064
My Solution
https://programmers.co.kr/learn/courses/30/lessons/64064
My Solution
def str_equal(user_id, banned_id):
if len(user_id) != len(banned_id):
return False
for i in range(len(user_id)):
if user_id[i] == banned_id[i] or banned_id[i] == '*':
continue
else:
return False
return True
def solution(user_id, banned_id):
count = 0
solutions = []
def dfs(user, banned, sol):
if len(banned) == 0:
solutions.append(tuple(sorted(sol)))
return
for i in range(len(user)):
if str_equal(user[i], banned[0]):
temp_b = banned.pop(0)
temp_u = user.pop(i)
sol.append(temp_u)
dfs(user, banned, sol)
sol.remove(temp_u)
user.insert(i, temp_u)
banned.insert(0, temp_b)
dfs(user_id, banned_id, [])
return len(set(solutions))
DFSで解決したので、もっと練習する必要があるかもしれません.挿入を無効にしたときに元の位置を挿入しなかったことによるエラーのため、時間がかかりました.Reference
この問題について([プログラマー]不良ユーザー(Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@cotato/프로그래머스-불량-사용자-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol