사용 언어 : python
시험은 최대 10000문제이므로
각 학생마다 최대 문제 수 만큼 선택한 답 list를 만들었습니다.
=> student1
, student2
, student3
answer
에는 각 학생들이 맞춘 문제수가 들어있습니다.
for문을 사용하여 각 학생마다 맞춘문제 수를 구합니다.
max
를 이용하여 가장 많이 맞힌 사람을 구합니다.
def solution(answers):
student1 = [1, 2, 3, 4, 5] * 2000
student2 = [2, 1, 2, 3, 2, 4, 2, 5] * 1250
student3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] * 1000
answer = []
first = second = third = x = 0
for i in answers:
if i == student1[x]:
first += 1
if i == student2[x]:
second += 1
if i == student3[x]:
third += 1
x += 1
answer.append(first)
answer.append(second)
answer.append(third)
result = []
if first == max(answer):
result.append(1)
if second == max(answer):
result.append(2)
if third == max(answer):
result.append(3)
return result
다른 사람 풀이와 비교해보니 enumerate() 함수를 사용.
enumerate( )이란?
이 함수는 순서가 있는 자료형(list, set, tuple, dictionary, string)을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 리턴합니다.
예시)
answer = ['a', 'b', 'c', 'd', 'e']
for x, y in enumerate(answer):
print(x, y)
결과
0 a
1 b
2 c
3 d
4 e