sm 기술 블로그
성격 유형 검사하기(2022 KAKAO TECH INTERNSHIP) - 파이썬 본문
num = [0,3,2,1,0,1,2,3]
name = [["R","T"], ["C","F"], ["J","M"], ["A","N"]]
score = [[0,0],[0,0],[0,0],[0,0]]
def sumScoreA(x, choice):
if(choice < 4) :
score[x][0] += num[choice]
else :
score[x][1] += num[choice]
def sumScoreB(x, choice):
if(choice < 4) :
score[x][1] += num[choice]
else :
score[x][0] += num[choice]
def indicator(x, s, choice):
if(s == "RT" or s == "CF" or s == "JM" or s == "AN"):
sumScoreA(x,choice)
else :
sumScoreB(x,choice)
def calResult():
result = []
for i in range(4):
if(score[i][0] > score[i][1] or score[i][0] == score[i][1]):
result.append(name[i][0])
else:
result.append(name[i][1])
return "".join(result)
def solution(survey, choices):
answer = ''
for i in range(len(survey)):
if(survey[i] == "RT" or survey[i] == "TR"):
indicator(0, survey[i], choices[i])
elif(survey[i] == "CF" or survey[i] == "FC"):
indicator(1, survey[i], choices[i])
elif(survey[i] == "JM" or survey[i] == "MJ"):
indicator(2, survey[i], choices[i])
elif(survey[i] == "AN" or survey[i] == "NA"):
indicator(3, survey[i], choices[i])
answer = calResult()
return answer
문제요약
누른 선택지에 따라 성격 유형이 나오게 해라.
설명
그냥 하란대로 하고, 함수를 이용해서 코드를 줄인것 뿐이다.
1. 메인 함수
def solution(survey, choices):
answer = ''
for i in range(len(survey)):
if(survey[i] == "RT" or survey[i] == "TR"):
indicator(0, survey[i], choices[i])
elif(survey[i] == "CF" or survey[i] == "FC"):
indicator(1, survey[i], choices[i])
elif(survey[i] == "JM" or survey[i] == "MJ"):
indicator(2, survey[i], choices[i])
elif(survey[i] == "AN" or survey[i] == "NA"):
indicator(3, survey[i], choices[i])
answer = calResult()
return answer
조사 지표에 따라서 함수를 실행한다.
2. 분기 함수
def indicator(x, s, choice):
if(s == "RT" or s == "CF" or s == "JM" or s == "AN"):
sumScoreA(x,choice)
else :
sumScoreB(x,choice)
지표가 첫번째면 sumScoreA를 실행하고, 두번째면 sumScoreB를 실행한다.
3. 점수 함수
def sumScoreA(x, choice):
if(choice < 4) :
score[x][0] += num[choice]
else :
score[x][1] += num[choice]
def sumScoreB(x, choice):
if(choice < 4) :
score[x][1] += num[choice]
else :
score[x][0] += num[choice]
RT, CF, JM, AN은 A를 실행하고 아니면 B를 실행한다.
4. 결과 함수
def calResult():
result = []
for i in range(4):
if(score[i][0] > score[i][1] or score[i][0] == score[i][1]):
result.append(name[i][0])
else:
result.append(name[i][1])
return "".join(result)
앞 혹은 뒤 중 큰 쪽을 result에 추가하여 join을 통해 문자열을 만들어 return 해준다.
'문제 > 프로그래머스_파이썬' 카테고리의 다른 글
[1차] 캐시 (2018 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.09 |
---|---|
신고 결과 받기(2022 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.08 |
신규 아이디 추천(2021 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.06 |
키패드 누르기(2020 카카오 인턴십) - 파이썬 (0) | 2022.10.05 |
크레인 인형뽑기 게임(2019 카카오 개발자 겨울 인턴십) - 파이썬 (0) | 2022.10.04 |
Comments