프로그래머스 : 2019 카카오 개발자 겨울 인턴십 - 불량 사용자
2021. 10. 23. 04:40ㆍ문제풀기/프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/64064
코딩테스트 연습 - 불량 사용자
개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량
programmers.co.kr
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 |