문제링크
def solution(survey, choices):
answer = ''
# 성격유형을 딕셔너리로 각 유형마다 점수를 저장
mbti_dic = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
# 선택지만큼 반복
for i in range(len(choices)):
# 만약 선택지가 1, 2, 3 중 하나라면
if choices[i] <= 3:
# 4에서 점수를 뺀 만큼의 점수를 survey의 첫번째 문자값에 저장
mbti_dic[survey[i][0]] += 4 - choices[i]
# 선택지가 5, 6, 7 중 하나라면
elif choices[i] >= 5:
# 점수에서 4를 뺀 점수를 survey의 두 번째 문자값에 저장
mbti_dic[survey[i][1]] += choices[i] - 4
# answer 조합을 위해 key와 value를 분리하고, 반복문을 사용하기 위해 list 형변환
keys = list(mbti_dic.keys())
values = list(mbti_dic.values())
# key와 value는 8가지가 있으므로 8번을 도는데, 앞뒤 숫자를 비교하기 위해 step을 2로 지정
for i in range(0, 7, 2):
# 만약 앞 숫자가 더 크다면 앞번의 key를 추가
if values[i] >= values[i + 1]:
answer += keys[i]
# 뒤 숫자가 더 크다면 뒤번의 key를 추가
else:
answer += keys[i + 1]
return answer