ps:problems:programmers:42840
모의고사
ps | |
---|---|
링크 | programmers.co.kr/… |
출처 | 프로그래머스 |
문제 번호 | 42840 |
문제명 | 모의고사 |
레벨 | Level 1 |
분류 |
기초 |
시간복잡도 | O(n) |
인풋사이즈 | n<=10000 |
사용한 언어 | Python |
해결날짜 | 2021/06/10 |
태그 |
풀이
- 그냥 각 패턴을 적용해서 답을 만들었을때, 정답과 같은 답이 몇개인지 일일히 세어보는 것 외에 별 방법이 없다. 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)]
ps/problems/programmers/42840.txt · 마지막으로 수정됨: 2021/06/14 15:14 저자 teferi
토론