https://school.programmers.co.kr/learn/courses/30/lessons/118666
문제 접근
- 각 성격 유형 별로 score를 저장하는 자료구조가 필요할 듯 근데 default 값이 있어야 성격을 모두 출력 가능하니, defaultdict 사용
- "RT"던 "TR"이던 신경 쓸 필요는 없어 보임 어차피 score에 따라 점수 부여가 달라지니깐
- 같은 점수일 경우 사전식으로 정렬하여 출력하면 되니 sort 후 점수 비교하여 answer에 추가
코드
import collections
def solution(survey, choices):
answer = ''
types = ["RT", "CF", "JM", "AN"]
response_table = collections.defaultdict(int)
for i in range(len(survey)):
score = choices[i]
if 1 <= score <= 4:
response_table[survey[i][0]] += 4 - score
elif 5 <= score <= 7:
response_table[survey[i][1]] += score - 4
for type in types:
type1, type2 = sorted(type)
answer += type1 if response_table[type1] >= response_table[type2] else type2
return answer
'Development > PS' 카테고리의 다른 글
[완전탐색] 프로그래머스 level 2 소수 찾기 Python 풀이 (0) | 2023.11.14 |
---|---|
[2022 KAKAO TECH INTERNSHIP] 두 큐 합 같게 만들기 Python 풀이 (1) | 2023.11.13 |
[Hash] 프로그래머스 Level 2 전화번호 목록 Python 풀이 (0) | 2023.11.11 |
[Hash] 프로그래머스 level 1 완주하지 못한 선수 python 풀이 (1) | 2023.11.09 |
[정렬] 프로그래머스 level 2 H-Index python 풀이 (0) | 2023.11.06 |