링크 📎
2022 카카오 테크 인턴십 - 성격 유형 검사하기
def solution(survey, choices):
score = {'R': 0, 'T': 0, 'C': 0, 'F': 0, 'J': 0, 'M': 0, 'A': 0, 'N': 0}
for s, c in zip(survey, choices):
# ('RT', 5), ('TR', 3)
if c > 4:
score[s[1]] += (c-4)
elif c < 4:
score[s[0]] += abs(c-4)
first = 'R' if score['R'] >= score['T'] else 'T'
second = 'C' if score['C'] >= score['F'] else 'F'
third = 'J' if score['J'] >= score['M'] else 'M'
fourth = 'A' if score['A'] >= score['N'] else 'N'
answer = first+second+third+fourth
return answer
survey
리스트와 해당 질문의 질문에 대응하는 답인 choices
는 짝이 지어져야 하는 정보choices
의 값으로 결정되는 성격 유형 점수는 -3에서 +3에 해당하는 스케일(scale)을 가짐survey
리스트와 choices
리스트를 zip
으로 튜플화하여 정보를 페어링하여 순차적으로 체크약간 동의
)일 때는 지표의 두 번째 성격 유형에 해당하는 값인 score[s[1]]
을 참조하여 점수 scale만큼 누적 (RT에서 T)score[s[0]]
을 참조하여 반대 scale만큼 값을 누적