[프로그래머스 코테 연습] 모의고사

Gorae·2021년 6월 10일
0

알고리즘

목록 보기
8/19
post-thumbnail

문제 요약

학생들 각각 정답을 찍는 패턴과 answers가 주어졌을 때, 3명의 학생 중 가장 많은 문제를 맞힌 사람이 누군지, 배열에 담아 return하라.

답안 예시

def solution(answers):
    pattern_1 = [1,2,3,4,5]
    pattern_2 = [2,1,2,3,2,4,2,5]
    pattern_3 = [3,3,1,1,2,2,4,4,5,5]
    score = [0, 0, 0]
    result = []

    for idx, answer in enumerate(answers):
        if answer == pattern_1[idx%len(pattern_1)]:
            score[0] += 1
        if answer == pattern_2[idx%len(pattern_2)]:
            score[1] += 1
        if answer == pattern_3[idx%len(pattern_3)]:
            score[2] += 1

    for idx, s in enumerate(score):
        if s == max(score):
            result.append(idx+1)

    return result

느낀점

  • enumerate 쓰는 법을 처음 알았는데, 앞으로 자주 쓸 것 같다!
    enumerate는 반복변수를 괄호 없는 튜플처럼 받을 수 있다. 특히 index 쓸 때 유용.
  • zip 에 대해서도 알게 됐다.
    zip은 같은 길이의 리스트를 같은 인덱스끼리 잘라서 리스트로 반환해주는 파이썬 내장 함수.
profile
좋은 개발자, 좋은 사람

0개의 댓글