728x90
https://programmers.co.kr/learn/courses/30/lessons/72412#qna
레벨 2 문제가 아니다; 말도안되게 어려웠음
처음에 3중for문으로 구성했다가 효율성 부분에서 탈락하고
풀이법 물색하다가
https://tech.kakao.com/2021/01/25/2021-kakao-recruitment-round-1/
이 사이트에서 해설보고 만듬..
솔직히 이거 시험장에서 생각해서 푼 사람 있나싶다;;;;;
너무 ..어려웠음
효율성 탈락한 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
def solution(info, query):
answer = []
for qu in query:
num = 0
qu = qu.split(" ")
for fo in info:
score = 0
q_idx = 0
fo = fo.split(" ")
# 0 2 4 6 7 info
# 0 1 2 3 4 query
# 점수는 마지막에 따로 계산
for i in range(len(fo) - 1):
if fo[i] == qu[q_idx] or qu[q_idx] == '-':
score += 1
else:
break
q_idx += 2
if score == 4 and int(fo[4]) >= int(qu[7]):
num += 1
answer.append(num)
return answer
|
cs |
합격코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
from itertools import combinations
def solution(info, query):
answer = []
info_dict = {}
# 모든 조합을 dict에 넣어주자
for fo in info:
# 인포의 각 요소들 f_list에 넣어주고
# 조건부분과 점수부분을 따로 저장한다
f_list = fo.split(' ')
f_non_score = f_list[:-1]
score = int(f_list[-1])
# 조합을 통해 각 자리에 -가 들어간 테이블을 만든다
for j in range(5):
combi = list(combinations(range(4), j))
for c in combi:
f_copy = f_non_score[:]
for i in c:
f_copy[i] = "-"
str_f = ''.join(f_copy)
if str_f in info_dict:
info_dict[str_f].append(score)
else:
info_dict[str_f] = [score]
for v in info_dict.values():
v.sort()
for q in query:
qry = [i for i in q.split(" ") if i != 'and']
qry_condition = ''.join(qry[:-1])
qry_score = int(qry[-1])
if qry_condition in info_dict:
value = info_dict[qry_condition]
if len(value) > 0:
start = 0
end = len(value)
while start != end:
if value[int((start + end) / 2)] >= qry_score:
end = int((start + end) / 2)
else:
start = (int((start + end) / 2) + 1)
answer.append(len(value) - start)
else:
answer.append(0)
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 2] 괄호 회전하기 파이썬/python (0) | 2021.06.05 |
---|---|
[프로그래머스 LV 2] 배달 파이썬/python (0) | 2021.06.05 |
[프로그래머스 LV 2] 튜플 파이썬/python (0) | 2021.06.03 |
[프로그래머스 LV 2] JadenCase 문자열 만들기 (0) | 2021.06.03 |
[프로그래머스 LV 2 ] 수식 최대화 파이썬/python (0) | 2021.06.03 |