ProblemSolving/Brute force

프로그래머스 모의고사

OSNIM 2022. 5. 6. 01:26
반응형

Level 1 완전탐색

 

문제 : https://programmers.co.kr/learn/courses/30/lessons/42840

 

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

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

programmers.co.kr

정답 코드

def solution(answers):
    ans = []
    giveup1 = [1, 2, 3, 4, 5]
    giveup2 = [2, 1, 2, 3, 2, 4, 2, 5]
    giveup3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]

    cnt = [0, 0, 0]

    for i in range(len(answers)):
        temp = i
        temp %= len(giveup1)
        if answers[i] == giveup1[temp]:
            cnt[0] += 1
        temp = i
        temp %= len(giveup2)
        if answers[i] == giveup2[temp]:
            cnt[1] += 1
        temp = i
        temp %= len(giveup3)
        if answers[i] == giveup3[temp]:
            cnt[2] += 1

    print(cnt)
    for i, s in enumerate(cnt):
        if s == max(cnt):
            ans.append(i + 1)

    return ans

좋아요를 가장 많이 받은 코드와 매우 유사해서 따로 정리할 게 없었습니다.

다만 enumerate를 이번에 처음 배워서 사용해봤습니다.

 

enumerate 는 '열거하다' 라는 의미로 순서가 있는 자료형(리스트, 튜플, 문자열)을 입력으로 받아 인덱스를 포함하는 

enumerate 객체를 돌려줍니다.

 

항상 인덱스가 처음에 와야합니다.

for i, alphabet in enumerate(['c', 'b', 'a']):
print(i, alphabet)

#0 c
#1 b
#2 a

for i, alphabet in enumerate(['c', 'b', 'a'], start = 1):
print(i, alphabet)

#1 c
#2 b
#3 a

 

반응형

'ProblemSolving > Brute force' 카테고리의 다른 글

프로그래머스 카펫 (파이썬)  (0) 2022.05.10
프로그래머스 소수찾기 (파이썬)  (0) 2022.05.06