프로그래머스 코딩테스트/Python

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

Coding-Su 2024. 7. 9. 21:23
728x90

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

정답

def solution(survey, choices):
    answer = ''
    score = [0, 0, 0, 0]
    for i in range(0, len(survey)):
        if survey[i] == "RT":
            score[0] += -1 * (choices[i] - 4)
        elif survey[i] == "TR":
            score[0] += choices[i] - 4
        elif survey[i] == "CF":
            score[1] += -1 * (choices[i] - 4)
        elif survey[i] == "FC":
            score[1] += choices[i] - 4
        elif survey[i] == "JM":
            score[2] += -1 * (choices[i] - 4)
        elif survey[i] == "MJ":
            score[2] += choices[i] - 4
        elif survey[i] == "AN":
            score[3] += -1 * (choices[i] - 4)
        elif survey[i] == "NA":
            score[3] += choices[i] - 4
            
    if score[0] >= 0:
        answer += "R"
    elif score[0] < 0:
        answer += "T"
    if score[1] >= 0:
        answer += "C"
    elif score[1] < 0:
        answer += "F"
    if score[2] >= 0:
        answer += "J"
    elif score[2] < 0:
        answer += "M"
    if score[3] >= 0:
        answer += "A"
    elif score[3] < 0:
        answer += "N"
    return answer

 

문제를 푸는 여러 방법이 있지만 저는 두가지 성격을 하나의 점수로 합쳐서 생각하였습니다. 그래서 배열 또한 크기가 4입니다.

R, C, J, A 성격을 양수, 반대되는 성격을 음수로 하여 평가를 할때 점수를 주어 문제를 풀었습니다.

코드의 길이는 길어보여도 시간적으로 매우 짧게 끝나도록 문제를 풀었습니다.

728x90