성격 유형 검사하기

발자·2022년 8월 29일
0

programmers

목록 보기
1/34

2022 KAKAO TECH INTERNSHIP 문제를 풀어보았다.

문제를 풀 때 문자열을 변수로 변환하여 사용할 수 있으면 좋겠다는 생각으로 검색을 하다가
locals(), globals()를 알게 되었다.

locals(), globals() 사용법 정리 글 보러가기

locals()를 사용하여 다음과 같이 코드를 작성하였다.

python

def solution(survey, choices):
    
    # 질문 수
    n = len(survey)
    
    # 성격 유형별 점수를 나타내는 점수
    locals()['Rpoint'] = 0 # 동적 지역 변수 생성
    locals()['Tpoint'] = 0
    locals()['Cpoint'] = 0
    locals()['Fpoint'] = 0
    locals()['Jpoint'] = 0
    locals()['Mpoint'] = 0
    locals()['Apoint'] = 0
    locals()['Npoint'] = 0
    
    # 선택지에 해당하는 성격 유형의 점수
    pointList = [0, 3, 2, 1, 0, 1, 2, 3]
    
    # 선택에 따른 점수 부여
    for i in range(0, n) :
        first = survey[i][0]
        second = survey[i][1]
        if choices[i] < 4 :
            locals()[first + 'point'] += pointList[choices[i]]
        elif choices[i] > 4 :
            locals()[second + 'point'] += pointList[choices[i]]
    
    answer = ''
    
    # 검사 결과 성격 유형
    for i in ["RT", "CF", "JM", "AN"] :
        first = locals()[i[0] + 'point']
        second = locals()[i[1] + 'point']
        if first < second :
            answer += i[1]
        else :
            answer += i[0]

    return answer

0개의 댓글