Skip to content

Latest commit

 

History

History
42 lines (34 loc) · 1.46 KB

풀이_불량사용자.md

File metadata and controls

42 lines (34 loc) · 1.46 KB

💻 프로그래머스 불량 사용자 풀이

  • Date : 2020.08.29(토)
  • Time : 60분 그 이상..
  • 풀이 실패 ..

내가 최대한 풀어서 맞은 풀이

  • 정규 표현식을 사용해서 매칭 시켜줌
        for i in range(len(banned_id)):
        count = 0
        banned_id[i] = re.compile("^"+banned_id[i].replace("*","([0-9]|[a-z])")+"$")
        for j in user_id:
            if banned_id[i].match(j):
                count += 1
    # 불량 사용자 닉네임에서 *를 문자나 숫자 중 한 글자만 들어가도 된다는 정규표현식으로 만들어서 변경해준다
    # 그리고 그 정규표현식과 사용자 닉네임과 match 시킨다
    # match 될 수 있는 갯수를 배열에 넣어준다.

내가 틀린 point

  • 경우의 수를 만들 때, 첫번째 열을 기준으로는 잘 만들어주지만.. 그 다음 조합으로 못넘어간다..
  • 계속 트리 구조로 뿌리를 뻗어가야한다.
  • 결론 : 백트래킹 하는 구조로 만들어야한다.

옳은 풀이

    # 경우의 수를 조합한다.
    for each_id in candidates[idx] :
        # 중복이 안된다면 
        if each_id not in arr:
            # 조합에 저장해준다.
            arr.add(each_id)
            dfs_check(idx+1,candidates,arr,length)
            # 다시 재귀함수를 통해 백트래킹 구현
            arr.remove(each_id)

: 불량사용자_해답.py