모의고사

yongju·2022년 11월 7일
0

Programmers

목록 보기
9/23
post-thumbnail

프로그래머스 레벨1 [정답율 59%]
문제

문제 정리
사용한 파라미터:
s1_answer, s2_answer, s3_answer(int) : 각 학생들이 정답을 맞춘 개수
winner(list) : 우승자 저장 코드
s1, s2, s3(list_int) : 학생들의 패턴

  1. 학생들의 패턴을 파악

  2. answer와 정답인 경우 정답을 맞춘 개수+1

  3. 제일 많이 맞춘 사람 리턴

    코드

def solution(answers):
    s1_answer, s2_answer, s3_answer=0, 0, 0
    winner=[]
    
    s1=[1,2,3,4,5]
    s2=[2, 1, 2, 3, 2, 4, 2, 5]
    s3=[3,3,1,1,2,2,4,4,5,5]

    s1+=s1*(len(answers)//len(s1))
    s2+=s2*(len(answers)//len(s2))
    s3+=s3*(len(answers)//len(s3))
    
    for i in range(len(answers)):
        if s1[i]==answers[i]:
            s1_answer+=1
        if s2[i]==answers[i]:
            s2_answer+=1
        if s3[i]==answers[i]:
            s3_answer+=1
    if max(s1_answer, s2_answer, s3_answer)==s1_answer:
        winner.append(1)
    if max(s1_answer, s2_answer, s3_answer)==s2_answer:
        winner.append(2)
    if max(s1_answer, s2_answer, s3_answer)==s3_answer:
        winner.append(3)
    return winner

코드 설명

    s1_answer, s2_answer, s3_answer=0, 0, 0
    winner=[]
    
    s1=[1,2,3,4,5]
    s2=[2, 1, 2, 3, 2, 4, 2, 5]
    s3=[3,3,1,1,2,2,4,4,5,5]

사용할 파라미터 및 학생들의 패턴 선언

s1+=s1*(len(answers)//len(s1))
    s2+=s2*(len(answers)//len(s2))
    s3+=s3*(len(answers)//len(s3))

answer의 길이에 맞도록 학생들의 패턴 늘리기(append)

    for i in range(len(answers)):
        if s1[i]==answers[i]:
            s1_answer+=1
        if s2[i]==answers[i]:
            s2_answer+=1
        if s3[i]==answers[i]:
            s3_answer+=1

answer와 학생들의 답이 맞는지 확인하고 맞으면 +1

    if max(s1_answer, s2_answer, s3_answer)==s1_answer:
        winner.append(1)
    if max(s1_answer, s2_answer, s3_answer)==s2_answer:
        winner.append(2)
    if max(s1_answer, s2_answer, s3_answer)==s3_answer:
        winner.append(3)
    return winner

제일 많이 맞춘 학생을 winner에 append하여 반환.
append를 쓰는 이유는 2명 이상의 학생이 동일한 점수를 가지고 있을 경우가 있기 때문.

제출 결과

insight
길이를 구할때 % 연산자를 써서 나타내면 더 간결함
점수를 더할때 변수를 쓰지않고 한 리스트에서 처리하면, enumerate를 사용하여 승자 결과값을 간결하게 나타낼 수 있음

profile
AI dev

0개의 댓글