연습장

20. 성격 유형 검사하기 본문

프로그래머스/1단계

20. 성격 유형 검사하기

js0616 2024. 1. 20. 17:33

 

n개의 질문 - 7개의 선택지이며

 

AN 의 경우

1-3 : A 의 점수 / 4 : 0 점 / 5-7 : N 의 점수

AN 5 이므로 N 1점 (네오형 1점) 으로 볼 수 있다. 

 

그리고 NA 5 가 있으므로

 

A 1점 (어피치형 1점) 으로 볼 수 있다 

 

다음과 같이 요약할 수 있으며

 

T C M 에 동점인 A와 M 중 사전순으로 빠른 A 가 오게되어서

TCMA 가 된다. 

 


survey 의 문자와 choice 의 숫자에 따라서 

RT / CF / JM / AN 에 대해서 각각의 점수를 얻고 종합한 4자리 문자를 출력하는게 목표이다. 

 

survey를 하나씩 꺼내서 맨 앞자리에 따라서 1-3 까진 + 이고 4는 0  5-7은 - 이므로

4 - choices[i] 를 적용하면 +3 점부터 -3 점까지 가능하다.

 

RT의 기준 R 일경우 + 부터이며 

RT에서 T 일경우 - 부터로 적용하여 일관되게 만들었다. 

 


 

def solution(survey, choices):
    answer = ''
    RT = 0
    CF = 0
    JM = 0
    AN = 0

    for i in range(len(survey)):
        
        if survey[i][0] == "R":
            RT += 4-choices[i]
        elif survey[i][0] == 'T':
            RT -= 4-choices[i]
        elif survey[i][0] == 'C':
            CF += 4-choices[i]
        elif survey[i][0] == 'F':
            CF -= 4-choices[i]
        elif survey[i][0] == 'J':
            JM += 4-choices[i]
        elif survey[i][0] == 'M':
            JM -= 4-choices[i]
        elif survey[i][0] == 'A':
            AN += 4-choices[i]
        elif survey[i][0] == 'N':
            AN -= 4-choices[i]
    
    if RT >= 0:
        answer += "R"
    else :
        answer += "T"
        
    if CF >= 0:
        answer += "C"
    else :
        answer += "F"
        
    if JM >= 0:
        answer += "J"
    else :
        answer += "M"
        
    if AN >= 0:
        answer += "A"
    else :
        answer += "N"
    return answer

 

 

 

'프로그래머스 > 1단계' 카테고리의 다른 글

22. 바탕화면 정리  (0) 2024.01.20
21. 데이터 분석  (0) 2024.01.20
19. 신규 아이디 추천  (0) 2024.01.19
18. 햄버거 만들기  (0) 2024.01.19
17. 키패드 누르기  (0) 2024.01.19