728x90
programmers - 성격 유형 검사하기 |
https://school.programmers.co.kr/learn/courses/30/lessons/118666
요즘 핫한 MBTI 성격 유형 검사를 모티브로 해서 만든 문제인 것 같습니다.
자세한 설명은 위의 링크를 참조해주세요.
문제설명
나만의 카카오 성격 유형 검사지를 만들려고 합니다.
성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다.
이때 각 지표를 결정하는 문제가 survey로 주어지고, 그 문제에 대한 선택지가 choices 배열로 주어집니다.
survey 에 대한 선택지에 맞게 성격유형을 판별하여 반환하면 되는 문제입니다.
풀이코드
def solution(survey, choices): ans = '' # survey에는 n개의 질문 + 7개의 선택지 # 각 질문은 1~4번 지표중 1가지 지표에 대한 성격 유형 점수 판단 # 한 지표에서 성격 유형 점수가 같으면, ex) R,T가 같으면 사전순 dic ={'R': 0, 'T': 0, 'C': 0, 'F': 0, 'A': 0, 'N': 0, 'J': 0, 'M': 0, } # ex) RT 지표 survey에서 비동의시 R 동의시 T for idx,su in enumerate(survey): if choices[idx] >= 4: dic[su[1]] += choices[idx] - 4 else: dic[su[0]] += 4 - choices[idx] #성격유형 결과 출력 if dic['R'] >= dic['T']: ans += 'R' else: ans += 'T' if dic['C'] >= dic['F']: ans += 'C' else: ans += 'F' if dic['J'] >= dic['M']: ans += 'J' else: ans += 'M' if dic['A'] >= dic['N']: ans += 'A' else: ans += 'N' return ans |
choices 배열에서 중간값 4를 기준으로 동의와 비동의를 분리하는 것이 핵심입니다.
끝에 if문을 여러개 나열했는데 깔끔하게 반복문으로 풀고싶어서 고민해봤지만 잘 모르겠습니다 ㅠ
728x90
'개인 공부 > 알고리즘 트레이닝' 카테고리의 다른 글
[python] programmers - k진수에서 소수 개수 구하기 (0) | 2022.09.10 |
---|---|
[python] programmers - 튜플 (1) | 2022.09.10 |
[python] programmers - 실패율 (1) | 2022.09.06 |
[python] programmers - 크레인 인형뽑기 게임 (0) | 2022.09.05 |
[python] programmers - 키패드 누르기 (0) | 2022.09.05 |
댓글