프로그래머스 성격 유형 검사하기 파이썬

안상철·2023년 5월 8일
0

문제링크

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
profile
웹 개발자(FE / BE) anna입니다.

0개의 댓글