스터디/알고리즘

모의고사

세졍 2024. 2. 21. 21:39

 

 

문제이해
답의배열이 주어졌을때 1,2,3번 수포자가 찍는방식으로 채점시
누가 가장 많이 맞췄는지 수포자 번호 출력


1.각 수포자가 맞힌갯수를 cnt1,2,3으로 만들고 arr에 담는다

2.arr에서 큰수를 구해서 그 인덱스번호+1 한 수를 arr2에 담는다

3 .enumerate() 이해 : 그 배열의 인덱스와 그 요소를 출력한다

my_list = ['apple', 'banana', 'cherry']

for index,value in enumerate(my_list):
    print(index,value)
    


# 0 apple
# 1 banana
# 2 cherry

 

 

 

 

def solution(answers):
    a1 = [1,2,3,4,5]
    a2 = [2, 1, 2, 3, 2, 4, 2, 5]
    a3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    arr = []
    arr2 = []
    N = len(answers)
    max_v = 0
    result = 0
    cnt1 = 0
    cnt2 = 0
    cnt3 = 0
    for i in range(N):
        if answers[i] == a1[i%5]:
            cnt1 += 1
        if answers[i] == a2[i%8]:
            cnt2+= 1
        if answers[i] == a3[i%10]:
            cnt3+=1
    arr.append(cnt1)
    arr.append(cnt2)
    arr.append(cnt3)
    max_v = max(arr)
    arr2 = [i+1 for i ,val in enumerate(arr) if val == max_v]
    return arr2