본문 바로가기
Coding Test/Python

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

by giem 2022. 8. 19.
반응형

프로그래머스 성격 유형 검사하기를 파이썬으로 풀어보겠다.

2022년 카카오 인턴 코딩 테스트 출제 문제이다.


문제

레벨 1치고 문제가 좀 길다. 하지만 간단하다.

 

survey에 지표가 들어있고 choices에 따라 각 유형에 값을 더해주고

4개의 분류에서 각각 값이 높은 지표를 리턴하는 것이다.


구현

survey와 choices의 개수가 같기 때문에

이 길이만큼 반복을 하고

dict에 survey의 지표 중에 choices에 따라 선택하여 값을 더해준다.

그 후 dict의 값을 비교하여 성격 유형 값에 추가해주고

성격유형을 리턴한다.

 

문제의 길이에 비해서 간단하게 구현할 수 있다.


코드
from collections import defaultdict
score = [0,3,2,1,0,1,2,3]
def solution(survey, choices):
    answer=""
    surv_elm = defaultdict(int)

    for i in range(len(survey)):
            surv_elm[survey[i][choices[i] // 4]] += score[choices[i]]

    answer += 'R' if surv_elm['R']>=surv_elm['T'] else 'T'
    answer += 'C' if surv_elm['C']>=surv_elm['F'] else 'F'
    answer += 'J' if surv_elm['J']>=surv_elm['M'] else 'M'
    answer += 'A' if surv_elm['A']>=surv_elm['N'] else 'N'

    return answer

약간의 트릭은 choices[i] //4 부분인데

index 4까지는 앞의 값, 그 이후는 뒤의 값을 보도록 한 것이다.

 

나머지는 쉽게 이해할 수 있다.


다른 풀이

아직 신상문제라 그런지 좋은 코드가 보이지 않는다.

혹시 좋은 방법이 있다면 댓글로 알려주시면 감사하겠습니다.

반응형

댓글