알고리즘
프로그래머스 모의고사 파이썬
구슬탈출
2023. 8. 1. 09:53
문제를 읽어보면 수포자 마다 사이클이 도는 숫자가 있을거다.
이 사이클(규칙)을 찾아서 answer 정답에 맞는 문제가 있는지 찾는거다
1번 수포자의 사이클은 : 1,2,3,4,5
2번 수포자의 사이클은 : 2, 1, 2, 3, 2, 4, 2, 5, 1
3번 수포자의 사이클은 : 3,3,1,1,2,2,4,4,5,5
이제 주어진 answer에 각 수포자들 끼리 정답을 비교하여
문제를 맞은 갯수를 구한다.
여기서 가장 큰수를 가진 수포자가 결과값으로 나와야 되는데
만약 가장 큰수를 가진 수포자가 여러명이라면 리턴값을 오름차순 으로 해야된다.
말로 만 하면 모르니까 코드를 보자
def solution(answer):
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]
r = [0,0,0]
for i in range(len(answer)):
if answer[i] == s1[i % len(s1)]:
r[0] += 1
if answer[i] == s2[i % len(s2)]:
r[1] += 1
if answer[i] == s3[i % len(s3)]:
r[2] += 1
ans = []
for i in range(3):
if r[i] == max(r):
ans.append(i+1)
return ans