본문 바로가기
Algorithm/프로그래머스

[프로그래머스] 모의고사(level 1) 파이썬 문제 풀이

by daewooki 2021. 8. 23.
반응형

문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42840

 

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

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

programmers.co.kr

 

완전 탐색에 해당하는 문제이다. 

무식해보여도 가끔은 최고의 방법이라는.. 

 

 

 

문제 풀이

1. 수포자마다 패턴이 다르므로 패턴을 하드코딩으로 넣어준다.

2. 문제의 갯수마다 반복문을 돌면서 각 수포자가 맞춘 갯수를 세어준다. (문제의 갯수를 입력으로부터 알 수 있음)

3. 세 명의 수포자 중 가장 많이 맞춘 갯수를 찾는다.

4. 가장 많이 맞춘 수포자를 넣어준다. (여러명일 경우 순차적으로 넣기)

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def solution(answers):
    answer = []
    
    student1 = [1,2,3,4,5]
    student2 = [2,1,2,3,2,4,2,5]
    student3 = [3,3,1,1,2,2,4,4,5,5]
    
    cnt1, cnt2, cnt3 = 000
    
    for i in range(len(answers)):
        if answers[i] == student1[i%5]:
            cnt1+=1
        if answers[i] == student2[i%8]:
            cnt2+=1
        if answers[i] == student3[i%10]:
            cnt3+=1
    
    answer_temp = [cnt1, cnt2, cnt3]
    
    for student, cnt in enumerate(answer_temp):
        if cnt == max(answer_temp):
            answer.append(student+1)
    
    return answer
cs

 

반응형

댓글