Coding Test Practice/Python
[프로그래머스 코딩테스트 연습 Lv. 1] 성격 유형 검사하기
y2r1m
2023. 3. 13. 03:08
https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
def solution(survey, choices):
answer = ''
scores = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
for s, c in zip(survey, choices):
if c < 4: # 비동의 선택 시
scores[s[0]] += 4 - c # 첫 번째 캐릭터에 점수 부여
elif c > 4: # 동의 선택 시
scores[s[1]] += c - 4 # 두 번째 캐릭터에 점수 부여
cat1 = list(scores.items())[::2] # 각 지표에서 첫 번째 유형 (R, C, J, A) (사전 순으로 더 빠름)
cat2 = list(scores.items())[1::2] # 각 지표에서 두 번째 유형 (T, F, M, N)
for c1, c2 in zip(cat1, cat2):
if c1[1] >= c2[1]: # 첫 번째 유형 점수가 더 높거나 같은 경우
answer += c1[0] # 첫 번째 유형 채택
else: # 두 번째 유형 점수가 더 높은 경우
answer += c2[0] # 두 번째 유형 채택
return answer