내 정답:
def solution(answers):
def one(i):
return (i + 1) % 5 or 5
def two(i):
if i % 2 == 0:
return 2
else:
if i % 8 == 1: return 1
elif i % 8 == 3: return 3
elif i % 8 == 5: return 4
else: return 5
def three(i):
if i % 10 < 2: return 3
elif i % 10 < 4: return 1
elif i % 10 < 6: return 2
elif i % 10 < 8: return 4
else: return 5
answer = []
oneCount = 0
twoCount = 0
threeCount = 0
for i in range(len(answers)):
if answers[i] == one(i): oneCount += 1
if answers[i] == two(i): twoCount += 1
if answers[i] == three(i): threeCount += 1
print(oneCount, twoCount, threeCount)
m = max(oneCount, twoCount, threeCount)
for i in ([oneCount, 1], [twoCount, 2], [threeCount, 3]):
if i[0] == m:
answer.append(i[1])
return answer
다른 사람들의 정답:
def solution(answers):
pattern1 = [1,2,3,4,5]
pattern2 = [2,1,2,3,2,4,2,5]
pattern3 = [3,3,1,1,2,2,4,4,5,5]
score = [0, 0, 0]
result = []
for idx, answer in enumerate(answers):
if answer == pattern1[idx%len(pattern1)]:
score[0] += 1
if answer == pattern2[idx%len(pattern2)]:
score[1] += 1
if answer == pattern3[idx%len(pattern3)]:
score[2] += 1
for idx, s in enumerate(score):
if s == max(score):
result.append(idx+1)
return result
'프로그래머스 알고리즘 문제 > Level 1' 카테고리의 다른 글
프로그래머스 Level 1 - 키패드 누르기 (0) | 2020.08.18 |
---|---|
프로그래머스 Level 1 - 2016년 (0) | 2020.08.17 |
프로그래머스 Level 1 - 체육복 (0) | 2020.08.17 |
프로그래머스 Level 1 - 완주하지 못한 선수 (0) | 2020.08.17 |
프로그래머스 Level 1 - 크레인 인형 뽑기 (0) | 2020.08.17 |