프로그래머스 코딩테스트/Python
[프로그래머스] 성격 유형 검사하기 Python
Coding-Su
2024. 7. 9. 21:23
728x90
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답
def solution(survey, choices):
answer = ''
score = [0, 0, 0, 0]
for i in range(0, len(survey)):
if survey[i] == "RT":
score[0] += -1 * (choices[i] - 4)
elif survey[i] == "TR":
score[0] += choices[i] - 4
elif survey[i] == "CF":
score[1] += -1 * (choices[i] - 4)
elif survey[i] == "FC":
score[1] += choices[i] - 4
elif survey[i] == "JM":
score[2] += -1 * (choices[i] - 4)
elif survey[i] == "MJ":
score[2] += choices[i] - 4
elif survey[i] == "AN":
score[3] += -1 * (choices[i] - 4)
elif survey[i] == "NA":
score[3] += choices[i] - 4
if score[0] >= 0:
answer += "R"
elif score[0] < 0:
answer += "T"
if score[1] >= 0:
answer += "C"
elif score[1] < 0:
answer += "F"
if score[2] >= 0:
answer += "J"
elif score[2] < 0:
answer += "M"
if score[3] >= 0:
answer += "A"
elif score[3] < 0:
answer += "N"
return answer
문제를 푸는 여러 방법이 있지만 저는 두가지 성격을 하나의 점수로 합쳐서 생각하였습니다. 그래서 배열 또한 크기가 4입니다.
R, C, J, A 성격을 양수, 반대되는 성격을 음수로 하여 평가를 할때 점수를 주어 문제를 풀었습니다.
코드의 길이는 길어보여도 시간적으로 매우 짧게 끝나도록 문제를 풀었습니다.
728x90