PROGRAMMERS 성격 유형 검사하기

LONGNEW·2022년 8월 24일
0

BOJ

목록 보기
321/333

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

input :

  • 1 ≤ survey의 길이 ( = n) ≤ 1,000
  • survey의 원소 ["RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA"] 중 하나
  • survey[i]의 첫 번째 캐릭터 : i+1번 질문의 비동의 선택지를 선택시의 성격 유형
  • survey[i]의 두 번째 캐릭터 : i+1번 질문의 동의 관련 선택지를 선택시의 성격 유형
  • choices의 길이 = survey의 길이

output :

  • 검사자의 성격 유형 검사 결과를 지표 번호 순서대로 return

조건 :

  • 매우 동의, 매우 비동의 : +3점
  • 동의, 비동의 : +2점
  • 약간 동의, 약간 비동의 : +1점
  • 모르겠음 : +0점

idea

구현

  1. survey[i][0], survey[i][1]의 값을 편하게 찾기 위해 dict() 사용.
  2. 마지막에는 4개의 조건문을 통해 그냥 빠르게 찾도록 하기.
def solution(survey, choices):
    answer = ''
    data = dict()

    for item in ["R", "T", "C", "F", "J", "M", "A", "N"]:
        data[item] = 0

    for i in range(len(survey)):
        left, right = survey[i][0], survey[i][1]
        value = 4 - choices[i]

        if value > 0:
            data[left] += abs(value)
        else:
            data[right] += abs(value)

    if data["R"] >= data["T"]:
        answer += "R"
    else:
        answer += "T"

    if data["C"] >= data["F"]:
        answer += "C"
    else:
        answer += "F"

    if data["J"] >= data["M"]:
        answer += "J"
    else:
        answer += "M"

    if data["A"] >= data["N"]:
        answer += "A"
    else:
        answer += "N"
    return answer

0개의 댓글