문제 설명
•
질문별 성격 유형 지표와 선택지를 기반으로 점수를 계산해, 각 지표에서 높은 점수를 받은 성격 유형을 반환하는 문제
◦
하나의 지표에서 각 성격 유형 점수가 같으면, 두 성격 유형 중 사전 순으로 빠른 성격 유형을 선택
예제 입력/출력
survey | choices | result |
["AN", "CF", "MJ", "RT", "NA"] | [5, 3, 2, 7, 5] | "TCMA" |
["TR", "RT", "TR"] | [7, 1, 3] | "RCJA" |
제약 조건
•
문제 풀이
브루트 포스 -
풀이 코드
types = ['R', 'T', 'C', 'F', 'J', 'M', 'A', 'N']
def solution(survey, choices):
score = {t: 0 for t in types} # score[t]: 성격 유형 t의 점수
for s, c in zip(survey, choices):
if c <= 3:
score[s[0]] += (4 - c)
elif c >= 5:
score[s[1]] += (c - 4)
ans = ""
for i in range(4):
s1, s2 = score[types[2 * i]], score[types[2 * i + 1]]
if s1 >= s2:
ans += types[2 * i]
else:
ans += types[2 * i + 1]
return ans
Python
복사