[프로그래머스/Python] - Lv1 / 모의고사

Chooooo·2023년 2월 23일
0
post-thumbnail

모의고사

level1 - 완전탐색 - 모의고사

조금 하드 코딩 내 코드

def solution(answers):
    
    a = []
    n = len(answers)
    cnt = 1
    for i in range(n):
        a.append(cnt)
        cnt += 1
        if cnt == 6:
            cnt = 1  
    #1번 학생 답안지 완성
    b = [2,1,2,3,2,4,2,5]
    while len(b) < n:
        b = b * 2
    b = b[:n]   
    #2번 학생 답안지 완성
    c = [3,3,1,1,2,2,4,4,5,5]
    while len(c) < n:
        c = c * 2
    c = c[:n]
    #3번 학생 답안지 완성
    
    cnt = [0] * 3
    for i in range(n):
        if a[i] == answers[i]:
            cnt[0] += 1
        if b[i] == answers[i]:
            cnt[1] += 1
        if c[i] == answers[i]:
            cnt[2] += 1
    
    max_cnt = max(cnt)
    res = []
    for i in range(3):
        if cnt[i] == max_cnt:
            res.append(i + 1)
    return res    
            

나머지 연산자로 인덱스 접근하는 코드

def solution(answers):
    
    a = [1,2,3,4,5]
    b = [2,1,2,3,2,4,2,5]
    c = [3,3,1,1,2,2,4,4,5,5]
    n = len(answers)
    cnt = [0] * 3
    
    for i in range(n):
        ans = answers[i]
        if a[i%len(a)] == ans:
            cnt[0] += 1
        if b[i%len(b)] == ans:
            cnt[1] += 1
        if c[i%len(c)] == ans:
            cnt[2] += 1
        
        
    
    max_cnt = max(cnt)
    res = []
    for i in range(3):
        if cnt[i] == max_cnt:
            res.append(i + 1)
    return res    
            

해당 문제 코멘트

각 수포자가 찍는 방식 리스트에 저장.
문제에 따라 찍을 숫자와 정답이 같은 경우 맞춘 횟수 올려준다.

  • 각 문제의 갯수를 늘리는 것이 아닌 나머지 연산자로 해당 문제들의 리스트를 접근하는 것이 올바른 방법이었다.
profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글