rueki
프로그래머스 Lv1. 모의고사(완전탐색) 본문
728x90
반응형
1번, 2번, 3번 학생 모두 찍는 패턴이 고유한데 찍는 패턴의 최대 길이가 다 다르다.
최대 10000문제까지 있다고 하는데 이를 전부 사용하는 것은 메모리 상 문제가 있을 것이다.
그래서 최소한의 패턴을 가지고 정답과 비교하기 위해서 정답 인덱스와 나머지연산을 통해서 반복하게 된다.
-예로 10번 문제에 대해서 비교하려 하는데 1번학생은 10 % 5 = 5, 2번학생은 10 % 8 = 2, 3번학생은 10 % 10 =0 의 패턴 순서에 있는 답과 비교를 하면 된다.
- 정답 개수 비교하여 카운트 세주기
- 최대로 맞은 사람 개수와 비교해서 같은 값을 가지는 학생의 경우 최종 출력
def solution(answers):
fs = [1, 2, 3, 4, 5]
ss = [2,1,2,3,2,4,2,5]
ts = [3,3,1,1,2,2,4,4,5,5]
c1, c2, c3 = 0, 0, 0
for i in range(len(answers)):
s1 = i % len(fs)
s2 = i % len(ss)
s3 = i % len(ts)
if fs[s1] == answers[i]:
c1 += 1
if ss[s2] == answers[i]:
c2 += 1
if ts[s3] == answers[i]:
c3 += 1
answer = []
score_list = [c1, c2, c3]
for i in range(len(score_list)):
if score_list[i] == max(score_list):
answer.append(i+1)
return answer
728x90
반응형
'프로그래머스 연습' 카테고리의 다른 글
프로그래머스 LV2. 타겟 넘버 (DFS) (0) | 2022.10.07 |
---|---|
프로그래머스 LV2. 짝지어 제거하기 (0) | 2022.10.06 |
프로그래머스 (LV2). 프린터 (0) | 2022.10.06 |
프로그래머스 LV2. 올바른 괄호(스택) (0) | 2022.10.06 |
프로그래머스(Lv2). 구명보트(Greedy) (0) | 2022.10.05 |
Comments