코딩테스트/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