検索[プログラマー]ランキング(Python Python Python Python Python Python Python Python Python)
18568 ワード
👉 连接检索
私のコード(効率がコードを通過していない)
# 2020 KAKAO BLIND RECRUITMENT 순위 검색
from collections import defaultdict
from bisect import bisect_left
def solution(info, query):
dic = defaultdict(
lambda: defaultdict(
lambda: defaultdict(
lambda: defaultdict(list),
),
),
)
for item in info:
item = item.split()
dic[item[0]][item[1]][item[2]][item[3]].append(int(item[4]))
def score_check(d, q):
result = 0
d.sort()
return len(d) - bisect_left(d, int(q[4]))
def pc_check(d, q):
if q[3] == "-":
result = 0
for k in d.keys():
result += score_check(d[k], q)
return result
else:
return score_check(d[q[3]], q)
def js_check(d, q):
if q[2] == "-":
result = 0
for k in d.keys():
result += pc_check(d[k], q)
return result
else:
return pc_check(d[q[2]], q)
def bf_check(d, q):
if q[1] == "-":
result = 0
for k in d.keys():
result += js_check(d[k], q)
return result
else:
return js_check(d[q[1]], q)
def language(d, q):
if q[0] == "-":
result = 0
for k in dic.keys():
result += bf_check(d[k], q)
return result
else:
return bf_check(d[q[0]], q)
result = []
for st in query:
q = st.split(" and ")
temp = q[-1].split(" ")
q[-1] = temp[0]
q.append(temp[1])
result.append(language(dic, q))
return result
私のコード(コードを通じて)
# 2020 KAKAO BLIND RECRUITMENT 순위 검색
from collections import defaultdict
from itertools import product
from bisect import bisect_left
def solution(info, query):
dic = defaultdict(list)
for item in info:
item = item.split()
slot = []
for i in range(4):
slot.append({"-", item[i]})
for i in product(*slot):
dic["".join(i)].append(int(item[4]))
for k in dic.keys():
dic[k].sort()
result = []
for q in query:
q = q.replace(" and ", " ").split(" ")
score = int(q[-1])
q = q[:-1]
t = dic["".join(q)]
result.append(len(t) - bisect_left(t, score))
return result
チップ
👉 おしゃべり
解き始めたばかりの頃は、完全に構造を作って解きましたが、なんといっても鬼のような部分と構造を経ていたので、タイムアウトだったのかもしれません.
Reference
この問題について(検索[プログラマー]ランキング(Python Python Python Python Python Python Python Python Python)), 我々は、より多くの情報をここで見つけました https://velog.io/@coding_egg/프로그래머스-순위-검색-python-파이썬テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol