Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 트라이
- pycon
- 티스토리
- Open API
- 티스토리 open api
- 카카오 인턴
- 크레인 인형뽑기 게임
- 가사 검색
- 알고리즘
- Python
- 호텔 방 배정
- CleanCode
- 튜플
- trie
- jdbc
- Spring Boot
- 트라이 #trie #알고리즘
- 보행자 천국
- 프로그래머스
- Tistory
- 징검다리 건너기
- 불량 사용자
- bulk update
Archives
- Today
- Total
택시짱의 개발 노트
[프로그래머스] 위클리 챌린지4주차 본문
링크
https://programmers.co.kr/learn/courses/30/lessons/84325
코딩테스트 연습 - 4주차
개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부
programmers.co.kr
풀이
코드가 너무 지저분한것 같다..
다른 분 들이 작성하신 코드를 보면 내가 작성한 코드가 부끄러워진다...
from collections import defaultdict
def make_language_score_data(table):
language_scores = defaultdict(dict)
rank_score = [i for i in range(5, 0, -1)]
for table_data in table:
table_list = (''.join(table_data)).split(' ')
job = table_list.pop(0)
data = dict(zip(table_list, rank_score))
language_scores[job] = data
return language_scores
def calc_score(language_scores, input_datas):
result_company = defaultdict(set)
for company, language_data in language_scores.items():
score_sum = 0
for l, s in input_datas.items():
try:
score_sum += language_data[l] * s
except KeyError:
score_sum += 0 * s
result_company[score_sum].add(company)
result_company = sorted(result_company.items(), key=lambda x: x[0], reverse=True)
_, companies = next(iter(result_company))
return sorted(list(companies)).pop(0)
def solution(table, languages, preference):
languages_scores = make_language_score_data(table)
return calc_score(languages_scores, dict(zip(languages, preference)))
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스] 6주차_복서 정렬하기 (0) | 2021.09.18 |
---|---|
[백준] - 미로 탈출 (0) | 2021.08.29 |
[프로그래머스] 로또의 최고 순위와 최저 순위도움말 (0) | 2021.07.25 |
스트리미 코테 (21) | 2021.01.12 |
tpay 코테 (0) | 2021.01.12 |
Comments