본문 바로가기
알고리즘 스터디

[Programmers][Python][2019 카카오 개발자 겨울 인턴십] 불량사용자 - level3

by Dblog 2021. 2. 5.
728x90

programmers.co.kr/learn/courses/30/lessons/64064

 

코딩테스트 연습 - 불량 사용자

개발팀 내에서 이벤트 개발을 담당하고 있는 무지는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량

programmers.co.kr

 

 

정답코드

 

블로그 참조

jisun-rea.tistory.com/entry/python-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-2019-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EA%B2%A8%EC%9A%B8-%EC%9D%B8%ED%84%B4%EC%8B%AD-%EB%B6%88%EB%9F%89-%EC%82%AC%EC%9A%A9%EC%9E%90

# ※velog.io/@daon9apples/

from itertools import permutations

def isMatch(user_set, banned_set):
    for i in range(len(user_set)):
        if len(user_set[i])!=len(banned_set[i]):
            return False
        for j in range(len(user_set[i])):
            if banned_set[i][j]=='*':
                continue
            if user_set[i][j]!=banned_set[i][j]:
                return False
    return True
    
def solution(user_id, banned_id):
    ans=[]
    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 ans:
                ans.append(com_set)
    return len(ans)

 

풀다가 답은 맞췄는데 코드가 너무 더러워서 다른분 코드를 찾아보다가 발견하게 되었습니다.

너무 깔끔하게 잘 정리하신것 같아 공유합니다.

※이분도 다른분꺼 공유 주신것 같습니다.
velog.io/@daon9apples/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-Level3-%EC%95%BC%EA%B7%BC-%EC%A7%80%EC%88%98-Python

 

728x90

댓글