Programmers_위클리챌린지 4주차 직업군 추천하기(python)
프로그래머스 위클리 챌린지 4주차 - 직업군 추천하기 문제 입니다.
1. 문제
https://programmers.co.kr/learn/courses/30/lessons/84325
2. 분류 및 난이도
Programmers 문제입니다.
위클리 챌린지 4주차 문제입니다.
Level 1난이도의 문제입니다.
3. 생각한 것들(문제 접근 방법)
어렵지는 않지만 자료구조에 대해 여러가지 생각을 할 수 있게끔 도와주는 좋은 문제인 것 같습니다. 자료의 크기가 크지 않아서 푸는데 지장은 없지만 테이블의 크기가 1만개가 넘는다면 어떻게 최적화할 지 생각하여 코드를 작성하게 되었습니다.
4. 접근 방법을 적용한 코드
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
def solution(table, languages, preference):
answer = ''
maxres = []
maxnum = 0
for i in range(len(table)):
sumnum = 0
# 공백을 기준으로 분리합니다. 점수를 확인하기 쉽게 인덱스로 나누었습니다.
templist = table[i].split(' ')
for j in range(len(languages)):
score = 0
try :
# 테이블이 5개만 들어오기에 6 - 찾은 인덱스를 해줍니다. 6인 이유는 처음에 SI, GAME 등 종목이 들어오기 때문입니다.
score = 6 - (templist.index(languages[j]))
except :
scroe = 0
sumnum += score * preference[j]
# 종목과 점수합계를 리스트에 넣습니다.
maxres.append([templist[0],sumnum])
for i in range(len(maxres)):
#사전순으로 업데이트 해줍니다.
if maxnum == maxres[i][1] :
answer = answer if answer < maxres[i][0] else maxres[i][0]
elif maxnum < maxres[i][1] :
answer = maxres[i][0]
maxnum = maxres[i][1]
return answer
5. 결과
필요시. c++ 짜드리겠습니다. 설명이 필요시 댓글달아주세요.
This post is licensed under CC BY 4.0 by the author.