반응형
프로그래머스 성격 유형 검사하기를 파이썬으로 풀어보겠다.
2022년 카카오 인턴 코딩 테스트 출제 문제이다.
문제
레벨 1치고 문제가 좀 길다. 하지만 간단하다.
survey에 지표가 들어있고 choices에 따라 각 유형에 값을 더해주고
4개의 분류에서 각각 값이 높은 지표를 리턴하는 것이다.
구현
survey와 choices의 개수가 같기 때문에
이 길이만큼 반복을 하고
dict에 survey의 지표 중에 choices에 따라 선택하여 값을 더해준다.
그 후 dict의 값을 비교하여 성격 유형 값에 추가해주고
성격유형을 리턴한다.
문제의 길이에 비해서 간단하게 구현할 수 있다.
코드
from collections import defaultdict
score = [0,3,2,1,0,1,2,3]
def solution(survey, choices):
answer=""
surv_elm = defaultdict(int)
for i in range(len(survey)):
surv_elm[survey[i][choices[i] // 4]] += score[choices[i]]
answer += 'R' if surv_elm['R']>=surv_elm['T'] else 'T'
answer += 'C' if surv_elm['C']>=surv_elm['F'] else 'F'
answer += 'J' if surv_elm['J']>=surv_elm['M'] else 'M'
answer += 'A' if surv_elm['A']>=surv_elm['N'] else 'N'
return answer
약간의 트릭은 choices[i] //4 부분인데
index 4까지는 앞의 값, 그 이후는 뒤의 값을 보도록 한 것이다.
나머지는 쉽게 이해할 수 있다.
다른 풀이
아직 신상문제라 그런지 좋은 코드가 보이지 않는다.
혹시 좋은 방법이 있다면 댓글로 알려주시면 감사하겠습니다.
반응형
'Coding Test > Python' 카테고리의 다른 글
[프로그래머스] 나머지가 1이 되는 수 찾기 Python Code (0) | 2022.08.23 |
---|---|
[프로그래머스] 2016년 Python Code (0) | 2022.08.20 |
[프로그래머스] 약수의 개수와 덧셈 Python Code (0) | 2022.08.17 |
[프로그래머스] K번째수 Python Code (0) | 2022.08.16 |
[프로그래머스] 체육복 Python Code (2) | 2022.08.10 |
댓글