프로그래머스 : 2019 카카오 개발자 겨울 인턴십 - 불량 사용자
2021. 10. 23. 04:40ㆍ문제풀기/프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/64064
length로 나누어서 아이디를 저장한다. 이를 통해 시간을 줄일 수 있다.
그리고 파이썬의 set과 dictionary를 적절히 사용해서 구현하면 된다.
from itertools import product
def solution(user_id, banned_id):
answer = 1
length_dict = dict()
count_banned = [[] for _ in range(len(banned_id))]
for user in user_id:
if len(user) in length_dict:
length_dict[len(user)].append(user)
else:
length_dict[len(user)] = [user]
for b in range(len(banned_id)):
banned = banned_id[b]
search_ids = length_dict[len(banned)]
for search in search_ids:
check = True
for i in range(len(banned)):
if banned[i] != "*" and banned[i] != search[i]:
check = False
break
if check == True:
count_banned[b].append(search)
answer_list = list(product(*count_banned))
final_set = []
for a in answer_list:
if len(a) == len(set(a)):
if set(a) not in final_set:
final_set.append(set(a))
answer = len(final_set)
return answer
'문제풀기 > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 위클리 챌린지 - 12주차 (0) | 2021.10.28 |
---|---|
프로그래머스 : 큰 수 만들기 (0) | 2021.10.28 |
프로그래머스 : 2018 KAKAO BLIND RECRUITMENT 1차 캐시 (0) | 2021.10.23 |
프로그래머스 : 2018 카카오 Blind Recruitment 3차 방금 그곡 (0) | 2021.10.23 |
프로그래머스 : 영어 끝말잇기 (0) | 2021.10.21 |