본문 바로가기

알고리즘 문제

프로그래머스 모의고사

def solution(answers):
    supo = [
        [1, 2, 3, 4, 5],
        [2, 1, 2, 3, 2, 4, 2, 5],
        [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    ]
    an_len = len(answers)
    for nums in supo:
        mul = an_len // len(nums)
        if mul > 0:
            nums *= (mul + 1)
    supo_dict = {0: 0, 1: 0, 2: 0}
    for i in range(an_len):
        if answers[i] == supo[0][i]:
            supo_dict[0] += 1
        if answers[i] == supo[1][i]:
            supo_dict[1] += 1
        if answers[i] == supo[2][i]:
            supo_dict[2] += 1

    supo_list = sorted(supo_dict.items(), key=lambda k: k[1], reverse=True)
    best = supo_list[0][1]
    # 1, 2번 같거나 1,2,3 다 같은 경우
    if best == supo_list[1][1] == supo_list[2][1]:
        return [1, 2, 3]
    elif best == supo_list[1][1] and best != supo_list[2][1]:
        return [supo_list[0][0] + 1, supo_list[1][0] + 1]
    elif best != supo_list[1][1]:
        return [supo_list[0][0] + 1]

출처 https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사 | 프로그래머스

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

programmers.co.kr

 

'알고리즘 문제' 카테고리의 다른 글

프로그래머스 숫자 야구  (0) 2019.08.30
프로그래머스 소수 찾기  (0) 2019.08.29
프로그래머스 베스트 앨범  (0) 2019.08.28
프로그래머스 위장  (0) 2019.08.28
프로그래머스 전화번호 목록  (0) 2019.08.28