슈뢰딩거의 고등어

[2022 KAKAO TECH INTERNSHIP] 성격 유형 검사하기 (Python3) 본문

알고리즘

[2022 KAKAO TECH INTERNSHIP] 성격 유형 검사하기 (Python3)

슈뢰딩거의 고등어 2022. 10. 22. 15:45

https://school.programmers.co.kr/learn/courses/30/lessons/118666

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

[풀이방법]

1. 문제를 하나씩 확인한다. (ex. 문제의 형식 : AB)

2. 점수를 준다.

    2-1. 답변이 3 이상일 경우, A에 점수를 준다. 

답변 환산 점수
1 3
2 2
3 1

    환산 점수 =  4- 답변 이라는 식을 도출 할 수 있다.

 

    2-2. 그 외의 경우, B에 점수를 준다.

답변 환산 점수
4 0
5 1
6 2
7 3

    환산 점수 = 답변 - 4 이라는 식을 도출 할 수 있다.

 

3. 각 지표별 성격 유형을 비교하여 더 높은 점수를 받은 유형을 answer 에 넣어준다.

만약, 점수가 같다면 알파벳 순으로 앞선 유형을 넣어준다.

 

[나의 풀이]

def solution(survey, choices):
    answer = ''
    sheet = {'R': 0, 'T': 0, 'C': 0, 'F': 0
            ,'J': 0, 'M': 0, 'A': 0, 'N': 0}
    # 점수 환산
    for i, s in enumerate(survey):
        if choices[i] <= 3:
            sheet[s[0]] += 4-choices[i]
        else:
            sheet[s[1]] += choices[i]-4
            
    # 지표 별 성격 유형 비교
    if sheet['R'] >= sheet['T']:
        answer+='R'
    else:
        answer+='T'
    
    if sheet['C'] >= sheet['F']:
        answer+='C'
    else:
        answer+='F'
    
    if sheet['J'] >= sheet['M']:
        answer+='J'
    else:
        answer+='M'
    
    if sheet['A'] >= sheet['N']:
        answer+='A'
    else:
        answer+='N'
        
    return answer
Comments