Coding test

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

heedy 2022. 12. 16. 10:44
728x90

문제 설명


문제 풀이 과정

포인트는 앞에 있는 동점일 경우 앞의 유형 글자를 추가하는 것

def solution(survey, choices):
    sur = {'R': 0, 'T': 0, 'C': 0, 'F': 0, 'J': 0, 'M':0, 'A': 0, 'N':0}
    score = [3,2,1,0,1,2,3]
    answer = ''
    for tp, sc in zip(survey, choices):
        if sc < 4:
            sur[tp[:1]] += score[sc-1]
        elif sc > 4:
            sur[tp[1:]] += score[sc-1]
            
    if sur['R'] >= sur['T']:
        answer += 'R'
    else:
        answer += 'T'
    
    if sur['C'] >= sur['F']:
        answer += 'C'
    else:
        answer += 'F'
    if sur['J'] >= sur['M']:
        answer += 'J'
    else:
        answer += 'M'
    if sur['A'] >= sur['N']:
        answer += 'A'
    else:
        answer += 'N'
    return answer

다른 사람의 풀이

def solution(survey, choices):

    my_dict = {"RT":0,"CF":0,"JM":0,"AN":0}
    for A,B in zip(survey,choices):
        if A not in my_dict.keys():
            A = A[::-1]
            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]
        elif my_dict[name] < 0:
            result += name[0]
        else:
            result += sorted(name)[0]

    return result

구현은 어렵지 않았다.

 

- coding test url:

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

 

프로그래머스

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

programmers.co.kr

 

728x90