파이썬 알고리즘 : 성격 유형 검사

딕셔너리

2023년 12월 22일 알고리즘 문제풀이

문제

성격 유형 검사

난이도

Lv.1

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
def solution(survey, choices):
    answer = []
    board = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
    n = len(survey)
    for i in range(n):
        idx = survey[i]
        if choices[i] < 4:
            board[idx[0]] += abs(4-choices[i])
        elif choices[i] >4:
            board[idx[1]] += (choices[i]-4)
            
    if board['R'] >= board['T']:
        answer.append('R')
    else:
        answer.append('T')
        
    if board['C'] >= board['F']:
        answer.append('C')
    else:
        answer.append('F')
        
    if board['J'] >= board['M']:
        answer.append('J')
    else:
        answer.append('M')
        
    if board['A'] >= board['N']:
        answer.append('A')
    else:
        answer.append('N')
        
    return ''.join(answer)

각 경우를 딕셔너리를 이용했다. 점수를 그대로 더해줘선 안되고 알맞게 변환해줘야 하는 부분이 조금은 신경써야할 부분.