반응형
programmers.co.kr/learn/courses/30/lessons/64064
풀이
오랜시간 풀 수 있을거같다가 실패한 문제.
내가 푼 방식
리스트를 하나 만들어서 banned_id index별로 될수있는 값을 리스트에 전부 넣어줬는데
그렇게 되면 [
[frodo,fradi],[frodo,crodo],[abc123,frodoc],[abc123,frodoc]]
이렇게 만들어지는데 조건 어떻게 구현해야할지 몰라서 실패
결국 답보고 이해한 결과
순열을 써서 전부다 비교해주는 방식이고 마지막 중복 걸러주려고 set형으로 넣어주는거
for 문에 바로 permutations 저렇게 쓰는거 처음 암
외우기!!!
from itertools import permutations
user_id=["frodo", "fradi", "crodo", "abc123", "frodoc"]
banned_id=["fr*d*", "*rodo", "******", "******"]
answer=[]
def isMatch(com_set,banned_id):
for i in range(len(com_set)):
if len(com_set[i])!=len(banned_id[i]):
return False
for j in range(len(com_set[i])):
if banned_id[i][j]=='*':
continue
if com_set[i][j]!=banned_id[i][j]:
return False
return True
for com_set in permutations(user_id,len(banned_id)):
if isMatch(com_set,banned_id):
com_set=set(com_set)
if com_set not in answer:
answer.append(com_set)
print(len(answer))
반응형
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Python/파이썬 프로그래머스] 호텔 방 배정 (0) | 2021.05.04 |
---|---|
[Python/파이썬 프로그래머스] 완주하지 못한 선수 (0) | 2021.05.01 |
[Python/파이썬 프로그래머스] 튜플 (0) | 2021.04.29 |
[Python/파이썬 11057 백준] 오르막 수 (다이나믹 프로그래밍) (0) | 2021.04.16 |
[Python/파이썬 백준 13913] 숨바꼭질 4 (BFS) (0) | 2021.04.15 |