프그스_완전탐색_모의고사_레벨1 (고득점 kit_index())

RostoryT·2022년 7월 14일
0

Brute force

목록 보기
8/18



메모한 것

각 a번 수포자가 찍을 때 다른데
- 1번은 1~5 반복
- 2번은 [2 1][2 3] [2 4][2 5] [2 1][2 3] 이렇게, 2는 제외!
- 3번은 3-1-2-4-5를 각각 두 번씩

브루트포스->answer와 하나씩 매칭(==)시켜서 cnt가 많은 사람이 누구인지

높은 점수 받은 사람이 여러 명이면, asc정렬


솔루션 코드 - 내가 푼

def solution(answers):
    answer = [0,0,0]
    leng = len(answers)
    ans = []
    
    man1 = [i+1 for i in range(5)]*2000
    man2 = [2,1,2,3,2,4,2,5] * 1250
    man3 = [3,3,1,1,2,2,4,4,5,5]*1000
    
    for i in range(leng):
        if man1[i] == answers[i]:  answer[0] += 1
        if man2[i] == answers[i]:  answer[1] += 1
        if man3[i] == answers[i]:  answer[2] += 1
        
    indexer = answer.index(max(answer))
    
    for i in range(3):
        if answer[i] == answer[indexer]:
            ans.append(i+1)
            
    return ans

print(solution([1,2,3,4,5]))
print(solution([1,3,2,4,2]))



솔루션 코드 - 블로그

  • 나랑 아이디어 같음
def solution(answers):
    first = [1,2,3,4,5]
    second = [2,1,2,3,2,4,2,5]
    third = [3,3,1,1,2,2,4,4,5,5]
    ret = [0,0,0]
    for i in range(len(answers)):
        if answers[i] == first[i%5]:
            ret[0] += 1
        if answers[i] == second[i%8]:
            ret[1] += 1
        if answers[i] == third[i%10]:
            ret[2] += 1
    maxval = max(ret)
    answer = []
    for i in range(len(ret)):
        if ret[i] == maxval:
            answer.append(i+1)
    return answer
profile
Do My Best

0개의 댓글