각 지원자들의 특성과 점수를 입력받고 특정 특성들을 가진 지원자들중 일정 이상의 점수를 가진 지원자들의 수를 구하는 문제입니다.
from itertools import combinations
from bisect import bisect_left
def solution(infos, query):
answer = []
d = {}
for info in infos:
s = info.split(' ')
for i in range(5):
for c in combinations(s[0:4], i):
string = str(c).replace('(', '').replace(')', '')
string = string.replace('\'', '').replace(',', '')
string = string.replace(' ', '')
if string in d:
d[string].append(int(s[4]))
else:
d[string] = [int(s[4])]
for i in d:
d[i].sort()
for i in range(len(query)):
query[i] = query[i].replace('and', '').replace(' ', ' ')
que = query[i].split(' ')
string = ''
p = 0
for q in que[0:4]:
if q != '-':
string += q
if string not in d:
answer.append(0)
else:
idx = bisect_left(d[string], int(que[4]))
answer.append(len(d[string]) - idx)
return answer