Algorithm/Programmers

[Programmers] Lv1. 모의고사

by somida 2021. 5. 14.

문제

바로가기

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr


풀이

  • 3명의 사람이라서 people의 푸는 방식을 리스트로 만들었다
  • 그리고 score를 미리 [0, 0, 0]으로 초기화해 answers를 돌면서 수포자의 정답과 같으면 score 해당 인덱스를 +1
  • (여기서, 각 수포자의 정답 길이를 가지고 % 연산을 통해 리스트를 길게 늘이지 않고 정답의 인덱스 계산 가능)
  • 점수 중 최고점을 가지고 answer에 최고점을 가진 수포자의 번호를 추가해준다.

 

코드

def solution(answers):
    scores = [0, 0, 0]
    people = [[1, 2, 3, 4, 5],
              [2, 1, 2, 3, 2, 4, 2, 5],
              [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
             ]
    
    for idx in range(len(answers)):
        if answers[idx] == people[0][idx % len(people[0])]:
            scores[0] += 1
        if answers[idx] == people[1][idx % len(people[1])]:
            scores[1] += 1
        if answers[idx] == people[2][idx % len(people[2])]:
            scores[2] += 1
    
    answer = []
    Max = max(scores)
    for score in range(3):
        if scores[score] == Max:
            answer.append(score + 1)
    return answer

 

반응형

댓글