susinlee 님의 블로그
성격 유형 검사하기 본문
[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[풀이]
1. 딕셔너리를 통해 각 유형을 key로 해서 점수를 구해준다.
2. 각 지표별로 타입을 가져오고, 해당 타입을 key로 하여 점수를 가져온다.
3. 점수를 비교해서 성격 유형을 선택한다. 점수가 같을 때에는 사전순으로 가져오게끔 한다.
from collections import defaultdict
def solution(survey, choices):
person_type = defaultdict(int)
answer = ''
for types, score in zip(survey, choices):
chr1, chr2 = types
if score - 4 > 0:
person_type[chr2] += score - 4
elif score - 4 < 0:
person_type[chr1] += 4 - score
for x, y in [('R', 'T'), ('C', 'F'), ('J', 'M'), ('A', 'N')]:
scoreX, scoreY = person_type[x], person_type[y]
if scoreX >= scoreY:
answer += x
else:
answer += y
return answer