사용자 도구

사이트 도구


ps:problems:programmers:42840

모의고사

ps
링크programmers.co.kr/…
출처프로그래머스
문제 번호42840
문제명모의고사
레벨Level 1
분류

기초

시간복잡도O(n)
인풋사이즈n<=10000
사용한 언어Python
해결날짜2021/06/10
태그

고득점 Kit - 완전탐색

풀이

  • 그냥 각 패턴을 적용해서 답을 만들었을때, 정답과 같은 답이 몇개인지 일일히 세어보는 것 외에 별 방법이 없다. O(n)이 걸린다.

코드

"""Solution code for "Programmers 42840. 모의고사".

- Problem link: https://programmers.co.kr/learn/courses/30/lessons/42840
- Solution link: http://www.teferi.net/ps/problems/programmers/42840
"""

import itertools

PATTERNS = [
    [1, 2, 3, 4, 5],
    [2, 1, 2, 3, 2, 4, 2, 5],
    [3, 3, 1, 1, 2, 2, 4, 4, 5, 5],
]


def solution(answers):
    scores = []
    for pattern in PATTERNS:
        score = sum(1 for student_answer, answer
                    in zip(itertools.cycle(pattern), answers)
                    if student_answer == answer)
        scores.append(score)
    return [i + 1 for i, score in enumerate(scores) if score == max(scores)]

토론

댓글을 입력하세요:
B G F C X
 
ps/problems/programmers/42840.txt · 마지막으로 수정됨: 2021/06/14 15:14 저자 teferi