2022 KAKAO TECH INTERNSHIP 문제를 풀어보았다.
문제를 풀 때 문자열을 변수로 변환하여 사용할 수 있으면 좋겠다는 생각으로 검색을 하다가
locals(), globals()를 알게 되었다.
locals(), globals() 사용법 정리 글 보러가기
locals()를 사용하여 다음과 같이 코드를 작성하였다.
def solution(survey, choices):
# 질문 수
n = len(survey)
# 성격 유형별 점수를 나타내는 점수
locals()['Rpoint'] = 0 # 동적 지역 변수 생성
locals()['Tpoint'] = 0
locals()['Cpoint'] = 0
locals()['Fpoint'] = 0
locals()['Jpoint'] = 0
locals()['Mpoint'] = 0
locals()['Apoint'] = 0
locals()['Npoint'] = 0
# 선택지에 해당하는 성격 유형의 점수
pointList = [0, 3, 2, 1, 0, 1, 2, 3]
# 선택에 따른 점수 부여
for i in range(0, n) :
first = survey[i][0]
second = survey[i][1]
if choices[i] < 4 :
locals()[first + 'point'] += pointList[choices[i]]
elif choices[i] > 4 :
locals()[second + 'point'] += pointList[choices[i]]
answer = ''
# 검사 결과 성격 유형
for i in ["RT", "CF", "JM", "AN"] :
first = locals()[i[0] + 'point']
second = locals()[i[1] + 'point']
if first < second :
answer += i[1]
else :
answer += i[0]
return answer