J2KB 3기 서브젝트 8주차 (3) 모의고사

새벽하늘·2021년 5월 27일
0

프로그래머스

목록 보기
4/11

❓문제

🤔 풀기 전

문제점

  • 최대 10,000 문제로 구성되어 있다 해서 for문을 사용해도 런타임에러가 안날 것이라고 생각했는데 런타임에러가 났다. 왜?
    -> 당연. 수포자들의 패턴을 반복해서 비교해야했는데 반복하지 않고 한번에 끝냈다.

🙋🏻‍♀️ 내 코드

def solution(answers):
    answer = []
    # 수포자는 3명: 삼인방
    # 1번 1,2, 3, 4, 5 반복
    # 2번 2, 1, 2, 3, 2, 4, 2, 5 반복
    # 3번 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 반복
    # 10,000문제니까 반복해도 되겠고
    # 마지막에 answer는 오름차순 정렬해도 되겠네 [o]

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

    corrCount = [0, 0, 0]

    qCount = len(answers) # 문제 수
    for i in range(qCount):
        q = answers[i]

        if q == supoja[0][i%5]:
            corrCount[0] += 1

        if q == supoja[1][i%8]:
            corrCount[1] += 1

        if q == supoja[2][i%10]:
            corrCount[2] += 1

    maxCount = max(corrCount)

    for i in range(3):
        if maxCount == corrCount[i]:
            answer.append(i+1)

    answer.sort()
    return answer

answers = [1,3,2,4,2]
print(solution(answers))

배운점

  • % 연살을 사용해 반복하기
profile
만들고 싶은 거 다 만들 수 있는 그날까지

0개의 댓글