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 |
29 | 30 | 31 |
Tags
- 보행자 천국
- CleanCode
- 트라이 #trie #알고리즘
- 징검다리 건너기
- 티스토리
- 카카오 인턴
- Open API
- 크레인 인형뽑기 게임
- 트라이
- pycon
- trie
- 불량 사용자
- 프로그래머스
- 알고리즘
- Tistory
- 튜플
- Spring Boot
- bulk update
- 호텔 방 배정
- jdbc
- 티스토리 open api
- Python
- 가사 검색
Archives
- Today
- Total
택시짱의 개발 노트
[프로그래머스] 위클리 챌린지4주차 본문
링크
https://programmers.co.kr/learn/courses/30/lessons/84325
풀이
코드가 너무 지저분한것 같다..
다른 분 들이 작성하신 코드를 보면 내가 작성한 코드가 부끄러워진다...
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