https://school.programmers.co.kr/learn/courses/30/lessons/118666
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
입출력 예 #1
각 지표에서 더 점수가 높은 T,C,M이 성격 유형입니다.하지만, 4번 지표는 1점으로 동일한 점수입니다. 따라서, 4번 지표의 성격 유형은 사전순으로 빠른 A입니다.
따라서 "TCMA"를 return 해야 합니다.
제한사항
- survey[i]의 첫 번째 캐릭터는 i+1번 질문의 비동의 관련 선택지를 선택하면 받는 성격 유형을 의미합니다.
- survey[i]의 두 번째 캐릭터는 i+1번 질문의 동의 관련 선택지를 선택하면 받는 성격 유형을 의미합니다.
해당 제한사항이 코드를 간결하게 만들어줍니다.
1. 풀이
def solution(survey, choices):
# 1. 성격유형 dic 만들기
personality = {'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] <= 3:
personality[survey[i][0]] += 4 - choices[i]
elif choices[i] >= 5:
personality[survey[i][1]] += choices[i] - 4
answer = ''
answer += 'T' if personality['R'] < personality['T'] else 'R'
answer += 'F' if personality['C'] < personality['F'] else 'C'
answer += 'M' if personality['J'] < personality['M'] else 'J'
answer += 'N' if personality['A'] < personality['N'] else 'A'
return answer
- choices가 3이하일 경우는 비동의관련 선택지로 survey의 0번째 문자를 가르킵니다.
- personality['R'] += 4를 할 경우 R의 value가 4로 업데이트됩니다.
- answer 부분에서 T의 value가 큰 경우만 T를 answer에 추가할 수 있습니다. 값이 같을 경우나, T가 더 작을 경우 모두 R을 answer에 추가합니다.
'프로그래머스' 카테고리의 다른 글
프로그래머스: 신규 아이디 추천 | Python (0) | 2024.01.26 |
---|---|
프로그래머스: 키패드 누르기 | Python (0) | 2024.01.25 |
프로그래머스: 크레인 인형뽑기 게임 | Python (0) | 2024.01.25 |
프로그래머스: 체육복 | Python (0) | 2024.01.24 |
프로그래머스: 실패율 | Python (0) | 2024.01.24 |