[코딩테스트] 모의고사

프로그래머스 코딩 테스트 준비
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 ! 기억하자
enumerate 함수를 다양하게 활용 할 수 있다는 것을 알았다.

좋은 웹페이지 즐겨찾기