[프로그래머스] Level3, 불량 사용자 (Python)

2021. 9. 10. 11:46·알고리즘/프로그래머스
728x90
반응형

문제

https://programmers.co.kr/learn/courses/30/lessons/64064?language=python3 

 

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

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

programmers.co.kr

 

코드

from itertools import permutations
def solution(user_id, banned_id):
    answer = 0
    per = list(permutations(user_id, len(banned_id)))
    result = []
    demo = []
    def check(a,b):
        for x,y in zip(a,b):
            if len(x) == len(y):
                for i,j in zip(x,y):
                    if i != j:
                        if j != '*':
                            return False
            else:
                return False
        return True
    
    for i in per:
        if check(i, banned_id):
            if set(i) not in result:
                result.append(set(i))
    
    return len(result)

 

permutations를 이용해 찾고자 하는 banned_id 길이만큼 순열을 구해 banned_id와 비교하여 가능한 것들만 찾는다.

 

모든 순열을 돌면서 순열과 banned_id를 비교하여 같은 값을 찾는다.

모든 순열을 돌기 때문에 현재 인덱스와 같은 banned_id만 비교하면 된다.

 

정답에서는 리스트안에 값이 순서는 다르더라도 값이 모두 같다면 같은 값으로 취급하기 때문에 set으로 감싸줘서 중복을 제거해줬다.

반응형
저작자표시 (새창열림)

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] Level2, 배달 (Python)  (0) 2021.09.13
[프로그래머스] Level2, 수식최대화 (Python)  (0) 2021.09.10
[프로그래머스] Level2, 거리두기 확인하기 (Python)  (0) 2021.08.25
[프로그래머스] Level3, 자물쇠와 열쇠 (Python)  (0) 2021.08.10
[프로그래머스] Level3, 합승 택시 요금 (Python)  (0) 2021.08.10
'알고리즘/프로그래머스' 카테고리의 다른 글
  • [프로그래머스] Level2, 배달 (Python)
  • [프로그래머스] Level2, 수식최대화 (Python)
  • [프로그래머스] Level2, 거리두기 확인하기 (Python)
  • [프로그래머스] Level3, 자물쇠와 열쇠 (Python)
wookcode
wookcode
공부한 내용들을 정리하고 기록하는 블로그입니다.
    반응형
  • wookcode
    wookcode
    wookcode
  • 전체
    오늘
    어제
    • 카테고리 (196) N
      • study (1) N
        • 아파치 카프카 애플리케이션 프로그래밍 with 자.. (0)
        • 인프런 (1) N
      • Live Study (15)
      • Programming (14)
        • Java (8)
        • Python (1)
        • Springboot (5)
        • MSA (0)
      • 알고리즘 (117)
        • 백준 (58)
        • 프로그래머스 (59)
      • 에러로그 (5)
      • 항해99 (23)
      • 면접 (1)
      • 프로젝트 (1)
      • CS (19)
        • 네트워크 (2)
        • 운영체제 (2)
        • 데이터베이스 (2)
        • 컴퓨터구조 (1)
        • Java (8)
        • Spring (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    에러
    해결
    김영한
    항해마켓
    버그
    파이썬
    카카오코딩테스트
    SFlash
    프로그래머스
    orm
    코딩테스트
    SpringBoot
    정리
    괄호
    조합
    그리디
    스파르타코딩클럽
    백준
    회고
    spring
    인프런
    jpa
    알고리즘
    미니프로젝트
    후기
    항해99
    카카오인턴
    브루트포스
    실전프로젝트
    java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
wookcode
[프로그래머스] Level3, 불량 사용자 (Python)
상단으로

티스토리툴바