[ 프로그래머스 / PYTHON ] 성격 유형 검사하기

yujeongkwon·2022년 9월 18일
1

프로그래머스 / PYTHON

목록 보기
59/77

문제 설명

성격 유형 검사하기

지표 번호	성격 유형
1번 지표	라이언형(R), 튜브형(T)
2번 지표	콘형(C), 프로도형(F)
3번 지표	제이지형(J), 무지형(M)
4번 지표	어피치형(A), 네오형(N)

선택지			성격 유형 점수
매우 비동의		네오형 3점
비동의			네오형 2점
약간 비동의		네오형 1점
모르겠음		어떤 성격 유형도 점수를 얻지 않습니다
약간 동의		어피치형 1점
동의			어피치형 2점
매우 동의		어피치형 3점

검사 결과는 모든 질문의 성격 유형 점수를 더하여 각 지표에서 더 높은 점수를 받은 성격 유형이 검사자의 성격 유형이라고 판단합니다. 단, 하나의 지표에서 각 성격 유형 점수가 같으면, 두 성격 유형 중 사전 순으로 빠른 성격 유형을 검사자의 성격 유형이라고 판단합니다.

질문마다 판단하는 지표를 담은 1차원 문자열 배열 survey와 검사자가 각 질문마다 선택한 선택지를 담은 1차원 정수 배열 choices가 매개변수로 주어집니다. 이때, 검사자의 성격 유형 검사 결과를 지표 번호 순서대로 return 하도록 solution 함수를 완성해주세요.

풀이 & Comment

lv1 중에 새로나온 문제라서 풀었음
그냥 간단한 구현문제
내가할 수 있는건 코드를 좀 더 간결하게 하는 것 뿐

코드

def solution(survey, choices):
    answer = ''
    dic= {"R" : 0,"T" : 0,"C" : 0,"F" : 0,"J" : 0,"M" : 0,"A" : 0,"N" : 0 }
    
    for s,c in zip(survey,choices):
        if c>4:     dic[s[1]] += c-4
        elif c<4:   dic[s[0]] += 4-c
    
    li = list(dic.items())
    
    for i in range(0,8,2):
        if li[i][1] < li[i+1][1]: answer += li[i+1][0]
        else:   answer += li[i][0]
        
    return answer
profile
인생 살자.

0개의 댓글