728x90
https://programmers.co.kr/learn/courses/30/lessons/64064
n의 갯수제한을 보고 완전탐색으로 풀면 되겠구나 싶었다.
순열을 사용해 모든 조합을 뽑아내고 답이 될 수 있는지 검사한다.
만약 답이 될 수 있는 선택지라면 set을 이용해 순서와 중복이 없는 상태로 만들어서
answer 리스트안에 있는지 확인한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
from itertools import permutations
def match(user, banned_id):
for i in range(len(user)):
if len(user[i]) == len(banned_id[i]):
for j in range(len(user[i])):
if user[i][j] != banned_id[i][j]:
if banned_id[i][j] == '*':
continue
else:
return False
else:
return False
return True
def solution(user_id, banned_id):
answer = []
for banned_user in permutations(user_id, len(banned_id)):
if match(banned_user, banned_id):
banned_user = set(banned_user)
if banned_user not in answer:
answer.append(banned_user)
return len(answer)
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 3] 셔틀버스 (파이썬/python) (0) | 2021.06.23 |
---|---|
[프로그래머스 LV 3] 보석 쇼핑 (파이썬/python) (0) | 2021.06.23 |
[프로그래머스 LV 3] 2 x n 타일링 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 3] 추석 트래픽 (파이썬/python) (0) | 2021.06.22 |
[프로그래머스 LV 3] 순위 (파이썬/python) (0) | 2021.06.22 |