https://programmers.co.kr/learn/courses/30/lessons/84325?language=python3
풀이
직업군 마다 탐색/확인
테이블의 요소별로 split ->info
info 탐색중에 languages에 있는 언어에 대해 점수 계산후 scores리스트에 담아줌
- info[0]의 직업군의 점수 += (6-info_index) x 선호도
scores중에 최대값과 같은 직업군들만 따로 사전순 정렬하여 0번째 직업군을 return
def solution(table, languages, preference):
scores=[]
list=[]
for idx in range(5): #테이블의 크기만큼
score=0
info=table[idx].split(" ")
for i in range(1, len(info)):
if info[i] in languages:
lang_idx=languages.index(info[i])
#테이블에서 각 직업군에 대한 언어의 순서 i, (6-i) x 선호도를 누적 합
score+=preference[lang_idx]*(6-i)
scores.append(score)
for i in range(len(scores)):
if scores[i]==max(scores):
#점수들의 최대값과 같은 직업군을 리스트에 append
list.append(table[i].split(" ")[0])
# 사전순으로 정렬
list.sort()
return list[0]
'알고리즘' 카테고리의 다른 글
Programmers - 퍼즐 조각 채우기(C++) (0) | 2021.09.24 |
---|---|
BOJ 2467 - 용액(C++) (0) | 2021.09.15 |
Programmers - 상호평가 (0) | 2021.09.14 |
Programmers - 부족한 금액 계산하기 (0) | 2021.09.14 |
Programmers - 문자열 압축(Python) (0) | 2021.09.06 |
댓글