[プログラマー]推薦職業群Python
6202 ワード
質問する
https://programmers.co.kr/learn/courses/30/lessons/84325
開発者が使用する言語と言語の好みを入力すると、対応する職業群を推奨するアルゴリズムを開発します.
次の表に、5つの共通言語(5つの職業ごと)の職業言語スコアを示します.
たとえば、SQLのSI職業言語は3点、CONTTS職業言語は2点です.SQLのHARDWARE、PORTAL、およびGAMEの職業言語スコアは0です.
パラメータは、職業群の言語スコアを整理した文字列テーブル、開発者が使用する言語を含む文字列配列言語、および言語の好みを持つ整数配列プリファレンスを含む文字列配列言語プリファレンスです.開発者が使用する言語嗜好度x職業群言語点数の総和が最も高い職業群は、解関数を完了してください.複数の職業群の合計が同じ場合は、名前の辞書順に最速の職業群を返します.
せいげんじょうけん
tableの要素は文字列で、フォーマットは「職業群5点言語4点言語3点言語2点言語1点言語」です.職業群、5分言語、4言語、3分言語、2分言語、1分言語はスペースです.
tableはすべてのテストケースで同じです.
言語の要素には、Java、Java SCRIPT、C、C++、C#、SQL、PYTHON、KOTLIN、PHPの1つ以上があります.
言語の要素は重複しません.
1≦preferenceの要素≦10
I/O例
アイデア
2-1. 言語では、言語の対応するインデックスを求め、優先度(preference[idx])を言語スコアに乗算します.
2-2. 言語に含まれていない場合は、テーブルの場所を0に変更します.
ソリューション関数python def solution(table, languages, preference):
for i in range(len(table)):
table[i] = table[i].split(' ') #2차원 배열로 변경
for j in range(1, 6):
if table[i][j] in languages: #선호 언어인지 검사
idx = languages.index(table[i][j])
table[i][j] = (6-j)*preference[idx]
else: #선호 언어 아니면 0으로 변경
table[i][j] = 0
table[i].append(sum(table[i][1:]))
table.sort(key = lambda x : (-int(x[6]), x[0])) #가장 높은 점수 출력
return table[0][0]
Reference
この問題について([プログラマー]推薦職業群Python), 我々は、より多くの情報をここで見つけました
https://velog.io/@guswl8280/프로그래머스-직업군-추천하기-Python
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def solution(table, languages, preference):
for i in range(len(table)):
table[i] = table[i].split(' ') #2차원 배열로 변경
for j in range(1, 6):
if table[i][j] in languages: #선호 언어인지 검사
idx = languages.index(table[i][j])
table[i][j] = (6-j)*preference[idx]
else: #선호 언어 아니면 0으로 변경
table[i][j] = 0
table[i].append(sum(table[i][1:]))
table.sort(key = lambda x : (-int(x[6]), x[0])) #가장 높은 점수 출력
return table[0][0]
Reference
この問題について([プログラマー]推薦職業群Python), 我々は、より多くの情報をここで見つけました https://velog.io/@guswl8280/프로그래머스-직업군-추천하기-Pythonテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol