https://school.programmers.co.kr/learn/courses/30/lessons/118666
문제는 MBTI에서 영감을 받아 카카오에서 제작한 문제같다.
def solution(survey, choices):
answer = ''
dict = {'R':0,'T':0,'C':0,'F':0,'J':0,'M':0,'A':0,'N':0}
for i in range(len(choices)):
if choices[i] > 4:
dict[survey[i][1]] += choices[i] % 4
if choices[i] < 4:
dict[survey[i][0]] += (choices[i] * 3) % 4
type_key = list(dict.keys())
for i in range(0,len(type_key),2):
if dict[type_key[i]] > dict[type_key[i+1]]:
answer += type_key[i]
if dict[type_key[i]] < dict[type_key[i+1]]:
answer += type_key[i+1]
if dict[type_key[i]] == dict[type_key[i+1]]:
answer += type_key[i]
return answer
라이언형과 튜브형, 콘형과 프로도형, 즉 R/T, C/F, J/M, A/N은 고정된 변수다.
그러므로 각 알파벳과 점수로 딕셔너리를 선언하고
choices에서 4를 기준으로 점수를 매긴다. (4는 0점)
그 다음 키값을 뽑아내 2개, 즉 R과 T 중에서, C와 F중에서.... A와 N 중에서 큰 값을 골라내 return하면 된다.
점수가 같을 경우 알파벳 순서에 맞게 return하면 되지만 이미 선언 단계에서 순서를 맞게 해줬으므로 건너뛰어도 무방하다.
'알고리즘' 카테고리의 다른 글
프로그래멋) 기사단원의 무기-python (0) | 2023.01.12 |
---|---|
프로그래머스) 가장 가까운 같은 글자-python (0) | 2023.01.11 |
프로그래머스) 개인정보 수집 유효기간 -python (0) | 2023.01.08 |
프로그래머스) 게임 맵 최단거리 -python (0) | 2023.01.06 |
프로그래머스)타겟 넘버 - python (0) | 2023.01.06 |