[プログラマー]推薦職業群
📩 -->問題の説明
開発者が使用する言語と言語の好みを入力すると、対応する職業群を推奨するアルゴリズムを開発します.
次の表に、5つの共通言語(5つの職業ごと)の職業言語スコアを示します.
分数SICONTHARDWAREPORTALGAME 5 JAVAVACSCRIPTCSJAVAC++4 JAVACSCRIPTJAVAC++JAVACSCRIPTC 3 LPYSHONPYTHONJVASCRITYTHONYTHONYTHONCYCYCYCYCYCYCYCYTHONCYCY
たとえば、SQLのSI職業言語は3点、CONTTS職業言語は2点です.SQLのHARDWARE、PORTAL、およびGAMEの職業言語スコアは0です.
パラメータは、職業群の言語スコアを整理した文字列テーブル、開発者が使用する言語を含む文字列配列言語、および言語の好みを持つ整数配列プリファレンスを含む文字列配列言語プリファレンスです.開発者が使用する言語嗜好度x職業群言語点数の総和が最も高い職業群は、解関数を完了してください.複数の職業群の合計が同じ場合は、名前の辞書順に最速の職業群を返します.
せいげんじょうけん
I/O例
tablelanguagespreferenceresult["SI JAVA JAVASCRIPT SQL PYTHON C#", "CONTENTS JAVASCRIPT JAVA PYTHON SQL C++", "HARDWARE C C++ PYTHON JAVA JAVASCRIPT", "PORTAL JAVA JAVASCRIPT PYTHON KOTLIN PHP", "GAME C++ C# JAVASCRIPT C JAVA"]["PYTHON", "C++", "SQL"][7, 5, 5]"HARDWARE"["SI JAVA JAVASCRIPT SQL PYTHON C#", "CONTENTS JAVASCRIPT JAVA PYTHON SQL C++", "HARDWARE C C++ PYTHON JAVA JAVASCRIPT", "PORTAL JAVA JAVASCRIPT PYTHON KOTLIN PHP", "GAME C++ C# JAVASCRIPT C JAVA"]["JAVA", "JAVASCRIPT"][7, 5]"PORTAL"
💡 ソリューション(使用言語:python)
def solution(table, languages, preference):
result=[]
job=['SI','CONTENTS','HARDWARE','PORTAL','GAME']
for i in table:
res=[]
for j in i.split(' '):
res.append(j)
res.reverse()
total=0
for c in languages:
for d in res:
if c==d:
total+=preference[languages.index(c)]*(res.index(d)+1)
result.append(total)
answer=list(zip(result,job))
answer= sorted(answer, key = lambda x : (-x[0],x))
return answer[0][1]
👉 説明:
結果
別の解釈
def solution(table, languages, preference):
answer = 'ZZZZZZZZ'
score_dic = {lang: score for lang, score in zip(languages, preference)}
max_score = 0
for row in table:
r = row.split(' ')
curr_score = 0
for i in range(1, len(r)):
curr_score += score_dic.get(r[i], 0) * (6-i)
if max_score < curr_score:
max_score = curr_score
answer = r[0]
elif max_score == curr_score and answer > r[0]:
answer = r[0]
return answer
get関数を利用する方法もあります!🌈 に感銘を与える
Chagで行って疲れたのですぐに解ける質問!
出典:プログラマ
間違いがあればメッセージをお願いします🙂
Reference
この問題について([プログラマー]推薦職業群), 我々は、より多くの情報をここで見つけました https://velog.io/@letgodchan0/프로그래머스-직업군-추천하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol