김찬양의 개발일지
18일차. 성격 유형 검사하기 본문
성격 유형 검사하기
https://school.programmers.co.kr/learn/courses/30/lessons/118666
문제
풀이과정
유형마다 점수를 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
'코딩테스트 > Programmers Level 1' 카테고리의 다른 글
20일차. 나머지가 1이 되는 수 찾기 (0) | 2023.12.13 |
---|---|
19일차. 신고 결과 받기 (0) | 2023.12.12 |
17일차. 숫자 짝궁 (0) | 2023.12.10 |
16일차. 삼총사 (0) | 2023.12.09 |
15일차. 콜라 문제 (0) | 2023.12.08 |