티스토리 뷰

반응형

https://programmers.co.kr/learn/courses/30/lessons/42840

 

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

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

programmers.co.kr


⊙ 

⊙ 제한사항

⊙ 입출력 예

⊙ 입출력 예 설명

 


 

⊙ 문제 접근 과정

 

총 3단계로 나누어 풀었어요.

 

1️⃣ 수포자가 찍는 방식 정의

2️⃣ 수포자가 맞춘 정답 개수

3️⃣ 가장 많이 맞춘 수포자 

 

 

첫 번째

세명의 수포자가 일정하게 찍는 패턴에 대해 배열로 정의했어요.

배열은 하나의 student 배열 안에 넣었습니다.

#수포자가 찍는 방식
    student = [[1, 2, 3, 4, 5], # 1번
               [2, 1, 2, 3, 2, 4, 2, 5], # 2번
               [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] # 3번
              ]

 

 

두 번째

이중 for문을 돌렸어요.

순서대로 수포자에 대해 주어진 answers와 비교합니다.

수포자마다 찍는 패턴 길이(배열의 길이)가 달랐어요.

그것을 len으로 처리하여 유동적으로 탐색할 수 있게 하였습니다.

#수포자의 정답 개수
    ans = []
    for k in range(len(student)):
        count = 0
        for i in range(len(answers)):
            if answers[i] == student[k][i%len(student[k])]:
                count+=1
        ans.append(count)

 

 

 

세 번째

max 함수를 이용하여 ans 배열의 값(정답 개수)이 max와 같다면

최종 결과 result 배열에 넣어주었어요.

 

이때 index는 0부터 시작하여 1을 더하고 넣어주었습니다 ㅎㅎ

#가장 많이 맞춘 수포자
    result = []
    for i in range(len(ans)):
        if ans[i] == max(ans):
            result.append(i+1)

 

 

마지막으로 return result

    return result

 

⊙ 문제 풀이

 

def solution(answers):
    #수포자가 찍는 방식
    student = [[1, 2, 3, 4, 5], # 1번
               [2, 1, 2, 3, 2, 4, 2, 5], # 2번
               [3, 3, 1, 1, 2, 2, 4, 4, 5, 5] # 3번
              ]
    
    #수포자의 정답 개수
    ans = []
    for k in range(len(student)):
        count = 0
        for i in range(len(answers)):
            if answers[i] == student[k][i%len(student[k])]:
                count+=1
        ans.append(count)

    #가장 많이 맞춘 수포자
    result = []
    for i in range(len(ans)):
        if ans[i] == max(ans):
            result.append(i+1)

    return result

⊙ 마무리

 

 

점점 이해하기 좋은 코드(가독성이 좋은 코드)로 변하고 있다는 걸 느끼고 있어요

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함