2021.07.11
문제
- 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
- 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
- 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...
1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.
단순히 1번학생과 2번학생 3번학생 각각 count를 하고 그 수를 result에 저장,
result의 최대값과 같은 result index를 저장시켰다.
하지만 런타임 오류 발생(이였나 시간초과였나 기억이,,)
def solution(answers):
answer = []
one = [1, 2, 3, 4, 5]
two = [2, 1, 2, 3, 2, 4, 2, 5]
thr = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
count1 = 0
count2 = 0
count3 = 0
for i in range(len(answers)):
if answers[i] == one[i%len(answers)]: count1 += 1
if answers[i] == two[i%len(answers)]: count2 += 1
if answers[i] == thr[i%len(answers)]: count3 += 1
result = [count1, count2, count3]
for i in range(len(result)):
if result[i] == max(result) : answer.append(i+1)
return answer
def solution(answers):
answer = []
count = 0
result = []
stu = [[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
for i in stu:
for j in range(len(answers)):
if i[j%len(i)] == answers[j]:
count += 1
result.append(count)
count = 0
for i in range(len(result)):
if result[i] == max(result) : answer.append(i+1)
return answer
수정하고 나서도 오류가 발생했었는데,
if i[j%len(i)] == answers[j]:
여기서 [j%len(answers)]
라고 썼었다,,
이거 찾아내느라 또 한참 걸렸었다.