반응형
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42840
완전 탐색에 해당하는 문제이다.
무식해보여도 가끔은 최고의 방법이라는..
문제 풀이
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 = 0, 0, 0
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 |
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스][2022 카카오 블라인드 테스트] 신고 결과 받기 - 파이썬 풀이 (0) | 2022.04.26 |
---|---|
[프로그래머스] 가장 큰 수(level 2) 파이썬 문제 풀이 (2) | 2021.08.27 |
[프로그래머스] 베스트앨범(level 3) Python 문제 풀이 (0) | 2021.07.30 |
[프로그래머스] K번째수(level 1) Python 문제 풀이 (0) | 2021.07.17 |
[프로그래머스] 프린터 (level 2) Python 문제 풀이 (2) | 2021.06.26 |
댓글