Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
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
Tags
more
Archives
Today
Total
관리 메뉴

김찬양의 개발일지

18일차. 성격 유형 검사하기 본문

코딩테스트/Programmers Level 1

18일차. 성격 유형 검사하기

자유로운영혼이다냥 2023. 12. 12. 01:27

성격 유형 검사하기

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

 

프로그래머스

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

programmers.co.kr

 


 

문제

 


 

풀이과정

유형마다 점수를 4를기준으로 나누어 각 유형에 대입하고 크기를 비교한다.

 

MBTI = {"R":0,"T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0}

각 유형마다 기본값 0을 지정한다.

    for i, j in zip(survey, choices):
        if j<4:
            MBTI[i[0]] += 4-j
        elif j>4:
            MBTI[i[1]] += j-4

각 경우의 수에따라, 4와의 차이를 각 딕셔너리에 대입한다. 4보다 작으면 앞부분, 4보다 크면 뒷부분의 성향에 점수를 더해준다.

    for i, j in ["TR","FC","MJ","NA"]:
        if MBTI[i] > MBTI[j]:
            answer += i
        else:
            answer += j

자 이제 각 성향을 묶어서 서로 비교하고, 더 큰쪽을 대입한다. 같은경우는 알파벳 순서이므로 순서에 주의해 순회하자.

return answer

그렇게 나온 결과를 리턴하면 각 사람들의 성향이 나온다.


 

정답

def solution(survey, choices):
    answer = ''
    MBTI = {"R":0,"T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0}
    for i, j in zip(survey, choices):
        if j<4:
            MBTI[i[0]] += 4-j
        elif j>4:
            MBTI[i[1]] += j-4
    for i, j in ["TR","FC","MJ","NA"]:
        if MBTI[i] > MBTI[j]:
            answer += i
        else:
            answer += j
    return answer

 

 

'코딩테스트 > Programmers Level 1' 카테고리의 다른 글

20일차. 나머지가 1이 되는 수 찾기  (0) 2023.12.13
19일차. 신고 결과 받기  (0) 2023.12.12
17일차. 숫자 짝궁  (0) 2023.12.10
16일차. 삼총사  (0) 2023.12.09
15일차. 콜라 문제  (0) 2023.12.08