Computer Science/자료구조

[6.7] 프로그래머스 코딩테스트 연습 - 모의고사 (8/100)

토마토. 2021. 6. 7. 10:01

코딩테스트 연습 - 모의고사 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

다행히 두 문제 한시간컷 했다. 

def solution(answers):
    answer = []
    n = len(answers)
    ma1 = [1,2,3,4,5] * 10
    ma2 = [2,1,2,3,2,4,2,5] * 10
    ma3 = [3,3,1,1,2,2,4,4,5,5] * 10
    po1 = 0
    po2 = 0
    po3 = 0

    ma1 = [1,2,3,4,5] * (n // 5) + ma1[0:n%5]
    ma2 = [2,1,2,3,2,4,2,5] * (n//8) + ma2[0:n%8]
    ma3 = [3,3,1,1,2,2,4,4,5,5] * (n//10) + ma3[0:n%10]

    for i in range(0, n):
      if answers[i] == ma1[i]:
        po1 += 1
      if answers[i] == ma2[i]:
        po2 += 1
      if answers[i] == ma3[i]:
        po3 += 1
    
    max_point = max(po1, po2, po3)

    if po1 == max_point:
      answer.append(1)
    if po2 == max_point:
      answer.append(2)
    if po3== max_point:
      answer.append(3)
    if len(answer) != 1:
      answer.sort()
    return answer

다른 사람 코드 ~.~

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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 result