[프로그래머스] 모의고사 - python

코린이·2022년 5월 29일
0

프로그래머스

목록 보기
9/22

📢 "모의고사" 문제

프로그래머스 문제 링크

🔎 풀이

사용 언어 : 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
profile
초보 개발자

0개의 댓글