코딩테스트/Programmers Level 1

18일차. 성격 유형 검사하기

자유로운영혼이다냥 2023. 12. 12. 01:27

성격 유형 검사하기

https://school.programmers.co.kr/learn/courses/30/lessons/118666

 

프로그래머스

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

programmers.co.kr

 


 

문제

 


 

풀이과정

유형마다 점수를 4를기준으로 나누어 각 유형에 대입하고 크기를 비교한다.

 

MBTI = {"R":0,"T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0}

각 유형마다 기본값 0을 지정한다.

    for i, j in zip(survey, choices):
        if j<4:
            MBTI[i[0]] += 4-j
        elif j>4:
            MBTI[i[1]] += j-4

각 경우의 수에따라, 4와의 차이를 각 딕셔너리에 대입한다. 4보다 작으면 앞부분, 4보다 크면 뒷부분의 성향에 점수를 더해준다.

    for i, j in ["TR","FC","MJ","NA"]:
        if MBTI[i] > MBTI[j]:
            answer += i
        else:
            answer += j

자 이제 각 성향을 묶어서 서로 비교하고, 더 큰쪽을 대입한다. 같은경우는 알파벳 순서이므로 순서에 주의해 순회하자.

return answer

그렇게 나온 결과를 리턴하면 각 사람들의 성향이 나온다.


 

정답

def solution(survey, choices):
    answer = ''
    MBTI = {"R":0,"T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0}
    for i, j in zip(survey, choices):
        if j<4:
            MBTI[i[0]] += 4-j
        elif j>4:
            MBTI[i[1]] += j-4
    for i, j in ["TR","FC","MJ","NA"]:
        if MBTI[i] > MBTI[j]:
            answer += i
        else:
            answer += j
    return answer