[ProblemSolving] 프로그래머스 위클리챌린지 - 4주차 직업군 추천하기
문제 설명은 생략하겠습니다. 링크를 클릭하세요.
문제 링크
입출력 예
table | languages | preference | result |
---|---|---|---|
["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" |
나의 풀이
쉬웠다..
3주차는 귀차나서 나중에 포스팅 예정..
입력 받은 table은 일차리스트인데, tables를 생성하여 이차리스트로 만들어 놓으면 구현이 쉬워진다.
tables를 돌면서, languages, preference를 하나씩 뽑아서 tables[i]에 languages[i]가 있는지를 탐색하고 있다면 합계를 누적한다.
total은 직업군에 대한 점수 총합이 나열되고, 가장 높은 총합을 갖고 있는 직업군을 찾는다.
사전순으로 가장 앞에 있는 원소를 리턴한다.
코드
def solution(table, languages, preference):
answer = [] ; total = [] ; tables = []
sum_ =0
tables = [i.split() for i in table]
for t in tables:
for lang, pref in zip(languages, preference):
if lang in t:
sum_ += (6- t.index(lang))*pref
total.append(sum_)
sum_ = 0
for i in range(len(total)):
if max(total) == total[i]:
answer.append(tables[i][0])
answer.sort()
return answer[0]
Author And Source
이 문제에 관하여([ProblemSolving] 프로그래머스 위클리챌린지 - 4주차 직업군 추천하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@redcarrot01/ProblemSolving-프로그래머스-위클리챌린지-4주차-직업군-추천하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)