문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/118666
(문제의 길이가 상당해 링크로 대체한다.)
풀이 & Comment
이 문제는 Level 1에 해당하는 문제로 난이도가 높은 문제는 아니다.
맨날 백준으로만 문제를 풀다가 프로그래머스에 적응해볼겸 기출문제도 풀어볼 겸 해봤다.
우선 문제를 보자마자 대충 구현 문제라는걸 떠올릴 수 있다.
문제의 길이가 상당한데, 여기서 대충 어림짐작해서 문제를 대충 읽었다간 삽질을 하게 될 수도 있다.(나처럼..)
이 문제의 포인트는 각 질문에 해당하는 답변마다의 점수를 확실히 기록해 놓으면 간단할 것 같다.
예컨대 choice가 1일때 추가해줘야 하는 점수는 3이고, 5일 때는 1이다.
또한 딕셔너리의 개념을 잘 숙지하고 있다면 더욱 빠르고 간단하게 풀 수 있을 것 같다.
코드
def solution(survey, choices):
score = {'R' : 0, 'T' : 0, 'C' : 0, 'F' : 0,
'J': 0, 'M' : 0, 'A' : 0, 'N' : 0}
answer = ''
for i in range(len(choices)):
if choices[i] >= 5:
score[survey[i][1]] += choices[i]-4
elif choices[i] <=3:
score[survey[i][0]] += 4-choices[i]
score_values = list(score.values())
score_keys = list(score.keys())
for i in range(0,7,2):
if score_values[i] >= score_values[i+1]:
answer += score_keys[i]
else:
answer += score_keys[i+1]
return answer