[コードテスト]模擬試験


プログラマコードテストの準備
https://programmers.co.kr/learn/courses/30/lessons/42840
質問の説明は次のサイトで確認できます.

<私が作成したコード>

def solution2(answers) :
    p1 = [1,2,3,4,5]
    p2 = [2,1,2,3,2,4,2,5]
    p3 = [3,3,1,1,2,2,4,4,5,5]
    answer = []
    c1 = 0
    c2 = 0
    c3 = 0

    for i in range(len(answers)) :
        j = i
        if i >= len(p1) :
            j = i % len(p1)
        if answers[i] == p1[j] :
            c1 += 1

    for i in range(len(answers)) :
        j = i
        if i >= len(p2) :
            j = i % len(p2)
        if answers[i] == p2[j] :
            c2 += 1

    for i in range(len(answers)) :
        j = i
        if i >= len(p3) :
            j = i % len(p3)
        if answers[i] == p3[j] :
            c3 += 1

    print(c1,c2,c3)

    if c1 >= c2 and c1 >= c3 :
        answer.append(1)
    if c2 >= c1 and c2 >= c3 :
        answer.append(2)
    if c3 >= c1 and c3 >= c2 :
        answer.append(3)

    return answer

<他人が説明したコード>

def solution(answers):
    pattern1 = [1,2,3,4,5]
    pattern2 = [2,1,2,3,2,4,2,5]
    pattern3 = [3,3,1,1,2,2,4,4,5,5]
    score = [0, 0, 0]
    result = []

    for idx, answer in enumerate(answers):
        if answer == pattern1[idx%len(pattern1)]:
            score[0] += 1
        if answer == pattern2[idx%len(pattern2)]:
            score[1] += 1
        if answer == pattern3[idx%len(pattern3)]:
            score[2] += 1

    for idx, s in enumerate(score):
        if s == max(score):
            result.append(idx+1)

    return resultdef solution(answers):
    pattern1 = [1,2,3,4,5]
    pattern2 = [2,1,2,3,2,4,2,5]
    pattern3 = [3,3,1,1,2,2,4,4,5,5]
    score = [0, 0, 0]
    result = []

    for idx, answer in enumerate(answers):
        if answer == pattern1[idx%len(pattern1)]:
            score[0] += 1
        if answer == pattern2[idx%len(pattern2)]:
            score[1] += 1
        if answer == pattern3[idx%len(pattern3)]:
            score[2] += 1

    for idx, s in enumerate(score):
        if s == max(score):
            result.append(idx+1)

    return result

🧑🏻 ポスト


0%x=0ではなく、エラーだと思います.0 % x = 0 ! 記憶する
複数の列挙関数を使用できることを発見しました.