def solution(answers):
supo = [
[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
]
an_len = len(answers)
for nums in supo:
mul = an_len // len(nums)
if mul > 0:
nums *= (mul + 1)
supo_dict = {0: 0, 1: 0, 2: 0}
for i in range(an_len):
if answers[i] == supo[0][i]:
supo_dict[0] += 1
if answers[i] == supo[1][i]:
supo_dict[1] += 1
if answers[i] == supo[2][i]:
supo_dict[2] += 1
supo_list = sorted(supo_dict.items(), key=lambda k: k[1], reverse=True)
best = supo_list[0][1]
# 1, 2번 같거나 1,2,3 다 같은 경우
if best == supo_list[1][1] == supo_list[2][1]:
return [1, 2, 3]
elif best == supo_list[1][1] and best != supo_list[2][1]:
return [supo_list[0][0] + 1, supo_list[1][0] + 1]
elif best != supo_list[1][1]:
return [supo_list[0][0] + 1]
출처 https://programmers.co.kr/learn/courses/30/lessons/42840
'알고리즘 문제' 카테고리의 다른 글
프로그래머스 숫자 야구 (0) | 2019.08.30 |
---|---|
프로그래머스 소수 찾기 (0) | 2019.08.29 |
프로그래머스 베스트 앨범 (0) | 2019.08.28 |
프로그래머스 위장 (0) | 2019.08.28 |
프로그래머스 전화번호 목록 (0) | 2019.08.28 |