728x90
https://programmers.co.kr/learn/courses/30/lessons/64064
코딩테스트 연습 - 불량 사용자
개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량
programmers.co.kr
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 |