https://school.programmers.co.kr/learn/courses/30/lessons/118666
문제 이해
MBTI와 같이 각각의 항목들을 검사하면서 어디쪽에 더 가깝니? 하는 문제로서 이해에 어려움은 없었다.
예를들어 survey에 ["AN", "CF", "MJ", "RT", "NA"]이 들어오고 choices에 [5,3,2,7,5]가 들어온다면
순차적으로 5는 약한동의이므로 뒤에 있는것에 +1을 해주고 3은 약한비동의이므로 앞에거에 +1해주고 2는 비동의라 앞에꺼에 +2해주고 T는 매우동의라 뒤에꺼에 +3해주고 마지막으로 다시 5도 약한동의라 뒤에꺼에 +1을 해주게 된다.
그리고 나서 1번지표부터 비교를 해주면서 만약 같다면 사전순으로 빠른걸해주고 다르다면 큰것을 각지표별로 나타내주면 된다.
먼저 point라는 배열을 만들어서 choices가 1이면 3점, 2이면2점...7이면3점이기에 맨앞인덱스는 아무 숫자나 넣어놓고 그 뒤부터 해당 점수를 적어두었다.
4를 기준으로 4보다 크다면 뒤에꺼에 더해주기에 if문을 통해 뒤에꺼에 point를 더해주었다.
마지막으로 각지표별로 비교하면서 answer string에 더해주었다.
def solution(survey, choices):
answer = ""
personaldict = {
"R" : 0,
"T" : 0,
"C" : 0,
"F" : 0,
"J" : 0,
"M" : 0,
"A" : 0,
"N" : 0
}
point = [-100,3,2,1,0,1,2,3]
for i in range(len(survey)):
if(choices[i]>4):
personaldict[survey[i][1]] += point[choices[i]]
else:
personaldict[survey[i][0]] += point[choices[i]]
answer += "R" if personaldict["R"]>=personaldict["T"] else "T"
answer += "C" if personaldict["C"]>=personaldict["F"] else "F"
answer += "J" if personaldict["J"]>=personaldict["M"] else "M"
answer += "A" if personaldict["A"]>=personaldict["N"] else "N"
return answer
'알고리즘' 카테고리의 다른 글
등산코스정하기-python(kakao22 season) (0) | 2023.06.12 |
---|---|
두 큐 합 같게 만들기 - Python으로 풀이 (0) | 2023.06.11 |
2342-Dance(python) (0) | 2023.06.04 |
13904과제-python (0) | 2023.06.01 |
백준 1644- 소수의 연속합(PYTHON) (0) | 2023.05.27 |