일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- KAKAO
- SMAPE
- TypeError
- 코테
- mMAPE
- 파이썬을파이썬답게
- iNT
- python 갯수세기
- 논문editor
- Alignments
- 평가지표
- RMES
- 논문작성
- 스택
- Pycaret
- Overleaf
- n_sample
- Mae
- 논문
- Scienceplots
- PAPER
- 에러해결
- mes
- n_neighbors
- knn
- Python
- MAPE
- Tire
- 카카오
- 프로그래머스
- Today
- Total
EunGyeongKim
[2022 kakao]성격유형 검사하기 본문
더 많은 코드 (https://github.com/EunGyeongKim/TIL)
GitHub - EunGyeongKim/TIL: Today I Learne
Today I Learne. Contribute to EunGyeongKim/TIL development by creating an account on GitHub.
github.com
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
나만의 카카오 성격 유형 검사지를 만들려고 합니다.
성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다.
지표 번호 | 성격 유형 |
---|---|
1번 지표 | 라이언형(R), 튜브형(T) |
2번 지표 | 콘형(C), 프로도형(F) |
3번 지표 | 제이지형(J), 무지형(M) |
4번 지표 | 어피치형(A), 네오형(N) |
4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다.
검사지에는 총 n
개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다.
매우 비동의
비동의
약간 비동의
모르겠음
약간 동의
동의
매우 동의
각 질문은 1가지 지표로 성격 유형 점수를 판단합니다.
검사 결과는 모든 질문의 성격 유형 점수를 더하여 각 지표에서 더 높은 점수를 받은 성격 유형이 검사자의 성격 유형이라고 판단합니다. 단, 하나의 지표에서 각 성격 유형 점수가 같으면, 두 성격 유형 중 사전 순으로 빠른 성격 유형을 검사자의 성격 유형이라고 판단합니다.
질문마다 판단하는 지표를 담은 1차원 문자열 배열 survey
와 검사자가 각 질문마다 선택한 선택지를 담은 1차원 정수 배열 choices
가 매개변수로 주어집니다. 이때, 검사자의 성격 유형 검사 결과를 지표 번호 순서대로 return 하도록 solution 함수를 완성해주세요.
2. 제한사항
- 1 ≤
survey
의 길이 ( =n
) ≤ 1,000survey
의 원소는"RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA"
중 하나입니다.survey[i]
의 첫 번째 캐릭터는 i+1번 질문의 비동의 관련 선택지를 선택하면 받는 성격 유형을 의미합니다.survey[i]
의 두 번째 캐릭터는 i+1번 질문의 동의 관련 선택지를 선택하면 받는 성격 유형을 의미합니다.
choices
의 길이 =survey
의 길이choices[i]
는 검사자가 선택한 i+1번째 질문의 선택지를 의미합니다.- 1 ≤
choices
의 원소 ≤ 7
choices | 뜻 |
---|---|
1 | 매우 비동의 |
2 | 비동의 |
3 | 약간 비동의 |
4 | 모르겠음 |
5 | 약간 동의 |
6 | 동의 |
7 | 매우 동의 |
3. 입출력 예
survey | choices | result |
---|---|---|
["AN", "CF", "MJ", "RT", "NA"] | [5, 3, 2, 7, 5] | "TCMA" |
["TR", "RT", "TR"] | [7, 1, 3] | "RCJA" |
4. 코드
def solution(survey, choices):
arr = dict(R=0,T=0,C=0,F=0,J=0,M=0,A=0,N=0)
score_list = [0,3,2,1,0,1,2,3]
for types, score in zip(survey, choices):
# types[0] strong and calculate score
if score < 4 :
arr[types[0]] = arr[types[0]]+score_list[score]
# types[1] strong and calculate score
if score > 4 :
arr[types[1]] = arr[types[1]]+score_list[score]
list1 = ['R', 'C', 'J', 'A']
list2 = ['T', 'F', 'M', 'N']
answer = ''
#select type using score
for a, b in zip(list1, list2) :
if arr[a] > arr[b]:
answer = answer + a
elif arr[a] < arr[b]:
answer = answer + b
elif arr[a] == arr[b]:
answer = answer + a
return answer
'코딩테스트 > programmers' 카테고리의 다른 글
[월간코드]3진법 뒤집기 (1) | 2022.09.20 |
---|---|
[2021 kakao]신규아이디 추천 (0) | 2022.09.20 |
[월간코드] n^2 배열 자르기 (0) | 2022.09.20 |
[연습문제]JadenCase 문자열 만들기 (1) | 2022.09.20 |
[Python] 정규 표현식 (1) | 2022.09.20 |