Algorithm/Programmers
[Python] 모의고사
느낌표 공장장
2021. 4. 6. 02:14
def solution(answers):
a = [1,2,3,4,5]
b = [2,1,2,3,2,4,2,5]
c = [3,3,1,1,2,2,4,4,5,5]
count_1 = 0
count_2 = 0
count_3 = 0
for i in range(len(answers)) :
if a[i%len(a)] == answers[i] :
count_1 += 1
if b[i%len(b)] == answers[i] :
count_2 += 1
if c[i%len(c)] == answers[i] :
count_3 += 1
score_list = [count_1, count_2, count_3]
answer = []
for x, y in enumerate(score_list):
if y == max(score_list) :
answer.append(x+1)
return answer
풀이
for i in range(len(answers)) :
if a[i%len(a)] == answers[i] :
count_1 += 1
if b[i%len(b)] == answers[i] :
count_2 += 1
if c[i%len(c)] == answers[i] :
count_3 += 1
score_list = [count_1, count_2, count_3]
answers의 길이만큼 반복문을 만들어
1번 학생(a), 2번 학생(b), 3번 학생(c)의 답과 맞추어 보아, 답과 맞는다면 1점씩 추가하는 방식이다.
!!! 중요 !!! 학생들의 답은 반복이니 나머지 연산을 사용하여 준다. a[i%len(a)]
쓰기 전에는 런타임 에러가 났다.
answer = []
for x, y in enumerate(score_list):
if y == max(score_list) :
answer.append(x+1)
return answer
enumerate 함수 (리스트의 인덱스의 정보도 반환하는 반복문. 예) (인덱스, 리스트값) )
를 사용하여 각 학생의 값(y)이 최댓값과 같다면 학생의 번호(x+1)를 answer 리스트에 넣어준다.