Algorithm/programmers/완전 탐색/level1/모의고사 (with python)

yellow·2021년 6월 10일
0

알고리즘 문제

목록 보기
32/58

📖 문제

📝 풀이 과정

  1. 수포자들이 찍는 방식을 각각 리스트에 담아놓는다.
  2. 1번 문제부터 마지막 문제까지의 정답과 수포자들의 찍은 답을 비교하면서 맞으면 해당 수포자의 index인 score에 +1을 해준다.
  3. 가장 많이 맞는 사람 index를 answer리스트에 담는다.

⌨ 코드

def solution(answers):
    answer = []
    score = [0] * 4
    # 1. 수포자들이 찍는 방식을 각각 리스트에 담아놓는다.
    one = [1, 2, 3, 4, 5]
    two = [2, 1, 2, 3, 2, 4, 2, 5]
    three = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    
    # 2. 1번 문제부터 마지막 문제까지의 정답과 수포자들의 찍은 답을 비교한다.
    for i in range(len(answers)):
        ans = answers[i]
        if ans == one[i % 5]:
            score[1] += 1
        if ans == two[i % 8]:
            score[2] += 1
        if ans == three[i % 10]:
            score[3] += 1
            
    # 3. 가장 많이 맞는 사람 index를 answer리스트에 담는다.
    maximum = max(score)
    for i in range(1, len(score)):
        if score[i] == maximum:
            answer.append(i)
    
    return answer

💡새로 알게된 문법

enumerate()

  • 리스트의 요소를 반복할 때 현재 인덱스도 알고싶은 경우에 사용한다.
scores = ["A", "B", "C"]
for idx, score in enumerate(scores):
    	print("{}번째 학생의 점수는 {}입니다.".format(idx,score))
  • 위 코드 결과
0번째 학생의 점수는 A입니다.
1번째 학생의 점수는 B입니다.
2번째 학생의 점수는 C입니다.
profile
할 수 있어! :)

0개의 댓글