알고리즘/프로그래머스

[프로그래머스 | Lv1] 성격 유형 검사하기 (Python) - 2022 KAKAO TECH INTERNSHIP

sssbin 2023. 1. 3. 12:02

 

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

 

프로그래머스

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

programmers.co.kr

 

각 성격 유형들을 딕셔너리로 만들어주고 choice 값에 따라 해당 유형의 값을 증가시켰다.

마지막에 순서에 맞게 성격 유형의 값을 출력해준다.

 

처음 제출한 코드

# 프로그래머스 118666: 성격 유형 검사하기 (2022 KAKAO TECH INTERNSHIP)

def solution(survey, choices):
    answer = ''
    personalities = { "R" : 0, "T" : 0, "C" : 0, "F" : 0, "J" : 0, "M" : 0, "A" : 0, "N" : 0}

    for i in range(len(survey)):
        if choices[i] == 1:
            personalities[survey[i][0]] += 3
        elif choices[i] == 2:
            personalities[survey[i][0]] += 2
        elif choices[i] == 3:
            personalities[survey[i][0]] += 1
        elif choices[i] == 5:
            personalities[survey[i][1]] += 1
        elif choices[i] == 6:
            personalities[survey[i][1]] += 2
        elif choices[i] == 7:
            personalities[survey[i][1]] += 3

    keys = list(personalities.keys())
    values = list(personalities.values())
    
    for i in range(4):
        if values[2*i] >= values[2*i+1]:
            answer += keys[2*i]
        else:
            answer += keys[2*i+1]

    return answer

 

조금 더 깔끔하게 정리했다.

다시 제출한 코드

# 프로그래머스 118666: 성격 유형 검사하기 (2022 KAKAO TECH INTERNSHIP)

def solution(survey, choices):
    answer = ''
    personalities = { "R" : 0, "T" : 0, "C" : 0, "F" : 0, "J" : 0, "M" : 0, "A" : 0, "N" : 0}

    for i in range(len(survey)):
        if choices[i] < 4:
            personalities[survey[i][0]] += (4 - choices[i])
        else:
            personalities[survey[i][1]] += (choices[i] - 4)

    keys = list(personalities.keys())
    values = list(personalities.values())
    
    for i in range(4):
        if values[2*i] >= values[2*i+1]:
            answer += keys[2*i]
        else:
            answer += keys[2*i+1]

    return answer