https://school.programmers.co.kr/learn/courses/30/lessons/118666
def solution(survey, choices):
# 값을 기록할 딕셔너리 생성
dic = {
"R" : 0,
"T" : 0,
"C" : 0,
"F" : 0,
"J" : 0,
"M" : 0,
"A" : 0,
"N" : 0,
}
# choices 개수만큼 반복하며, 딕셔너리에 기록
for i in range(len(choices)):
# 응답이 3보다 크면, 뒤의 성격 유형에 -3 뺀 만큼 점수 더하기
if choices[i] > 4:
dic[survey[i][1]] += (choices[i] - 4)
# 응답이 3보다 작으면, 앞의 성격 유형에 abs(4 - 값) 점수 더하기
elif choices[i] < 4:
dic[survey[i][0]] += (4 - choices[i])
# 같으면 pass
elif choices[i] == 4:
pass
result = []
# 성격 유형 고르기 함수
def pick(a, b):
if dic[a] != dic[b]:
result.append(max(a, b, key= lambda x : dic[x]))
elif dic[a] == dic[b]:
result.append(chr(min(ord(a), ord(b))))
# 4번 반복하며 성격 유형 고르기
pick("R", "T")
pick("C", "F")
pick("J", "M")
pick("A", "N")
answer = ""
for i in result:
answer += i
return answer
수도 코드 작성할 때, 출력 결과를 예상해서 딕셔너리에 순서를 부여하려고 했음
=> 무순위로 작성하고, 출력 때 맞춰주면 됨
두 구간으로 나눠서 비교하는 문제 => max, min 함수가 최고