관리 메뉴

커리까지

프로그래머스 2021 카카오 블라인드 순위검색 파이썬 본문

알고리즘/풀이

프로그래머스 2021 카카오 블라인드 순위검색 파이썬

목표는 커리 2021. 2. 10. 23:01
728x90
SMALL

문제링크

  • 정확성은 만점이었지만 효율성에서 탈락하였다. 찾아보니 문자열을 경우의 수로 만들고 이 문자열에서 이진탐색을 통해 정답을 제출하면 효율성까지 만점을 받는다.

효율성 X, 정확성 O 제출 답안

import re
import copy
def solution(info, query):
    people = {idx:value.split(' ') for idx, value in enumerate(info)}
    check =  {idx:list(filter(lambda x: x != '', re.split('\s|and',value))) for idx, value in enumerate(query)}
    people2 = copy.deepcopy(people)
    answer = []
    for key, item in check.items():
        for idx,data in enumerate(item):
            if data == '-':
                continue
            else:
                if idx != (len(item)-1):
                    people = dict(filter(lambda x: x[1][idx] == data, people.items()))
                elif idx == (len(item)-1):
                    people = dict(filter(lambda x: int(x[1][idx]) >= int(data), people.items()))
        answer.append(len(people))
        people = people2
    print(answer)
    return answer

효율성까지 정답 답안 참고 블로그

  • 이 블로그에 들어가면 이해할 수 있다.
  • 갈 길이 멀다
728x90
LIST
Comments