바위 뚫는중

[프로그래머스] Lv1. 성격 유형 검사하기 - 문자열 본문

Algorithms/프로그래머스

[프로그래머스] Lv1. 성격 유형 검사하기 - 문자열

devran 2023. 10. 26. 22:10
반응형

1️⃣ 성격 유형 검사하기

문제

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

💡 아이디어

survey choices result

["AN", "CF", "MJ", "RT", "NA"] [5, 3, 2, 7, 5] "TCMA"
["TR", "RT", "TR"] [7, 1, 3] "RCJA"

4를 기준으로 두고 생각하면 된다

AN 5인 경우는 5-4 = 1, N 에 1점을 부여하면 된다 (4보다 크면 우측꺼, 작으면 오른쪽 꺼다)

CF 3인 경우는 abs(3-4) = 1, C에 1점을 부여하면 된다

즉, 딕셔너리 키 값을 모두 0으로 초기화 해놓고 세팅해 둔후, survey각각의 값에 맞게 value를 더해준다.

📝 풀이

정답 코드

전체 길이에서 2개씩 잘라서 비교하면 편하다고 한다

근데 그냥 이렇게 풀어서 구현하였다!

def solution(survey, choices):
    answer = ''
    mydict = {'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:
            mydict[survey[i][1]] += choices[i]-4
        elif choices[i] < 4:
            mydict[survey[i][0]] += (choices[i]-4)*(-1)
        else:
            continue
    print(mydict)
    if mydict.get('R') >= mydict.get('T'):
        answer += 'R'
    else:
        answer += 'T'
        
    if mydict.get('C') >= mydict.get('F'):
        answer += 'C'
    else:
        answer += 'F'
        
    if mydict.get('J') >= mydict.get('M'):
        answer += 'J'
    else:
        answer += 'M'
        
    if mydict.get('A') >= mydict.get('N'):
        answer += 'A'
    else:
        answer += 'N'

    return answer
반응형