2022 KAKAO TECH INTERNSHIP
성격 유형 검사하기
def solution(survey, choices):
answer = ''
dic = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0} # 성격 유형 딕셔너리
# 4보다 작거나 클 때 해당 성격 유형 딕셔너리에 점수를 더해줌
for i in range(len(survey)):
if choices[i] > 4:
for j in dic.keys():
if survey[i][1] == j:
dic[j] += choices[i] - 4
elif choices[i] < 4:
for j in dic.keys():
if survey[i][0] == j:
dic[j] += 4 - choices[i]
# 지표마다 더 높은 점수를 받은 성격 유형 계산
for i in range(0, len(dic), 2):
if dic[list(dic.keys())[i]] >= dic[list(dic.keys())[i+1]]:
answer += list(dic.keys())[i] # i번째 키를 answer에 추가
else:
answer += list(dic.keys())[i+1]
return answer
파이썬 Dictionary 사용법에서 문법 참고
딕셔너리에서 특정 키 값만 가져오기
dic = {'R':0, 'T':0} print(dic.keys()[0]) # dict_keys가 리스트가 아니므로 에러가 남
리스트로 한 번 변환해준 뒤에 출력하면 정상적으로 출력된다.
print(list(dic.keys())[0]) # 'R'
def solution(survey, choices):
my_dict = {"RT":0,"CF":0,"JM":0,"AN":0}
# 각 survey 항목과 choices 항목을 짝 지어 비교
for A, B in zip(survey, choices):
# A가 딕셔너리의 키로 등록되어 있지 않은 경우
if A not in my_dict.keys():
A = A[::-1] # A를 뒤집음
my_dict[A] -= B - 4
else:
my_dict[A] += B - 4
result = ""
for name in my_dict.keys():
if my_dict[name] > 0:
result += name[1] # 값이 양수이면 두 번째 문자를 result에 추가
elif my_dict[name] < 0:
result += name[0] # 값이 음수이면 첫 번째 문자를 result에 추가
else:
result += sorted(name)[0]
return result