[파이썬/Python/프로그래머스] 완전탐색 모의고사

SooYeon Yeon·2022년 1월 4일
0

파이썬/알고리즘

목록 보기
3/35

프로그래머스 코딩 테스트 연습 문제에 있는 완전탐색 - 모의고사 문제이다.

  1. 수포자 3명의 패턴을 각각 배열로 넣어준다.
  2. answer의 길이만큼 for문을 돌린다.
  3. answer의 길이가 수포자들의 배열보다 커질 경우를 대비하여 수포자 배열 인덱스는 그 배열의 길이의 나머지를 구해주어 사용한다.
  4. 수포자들이 정답을 맞춘 횟수를 더해주어 cnt 배열에 더해준다
  5. score 배열에서 가장 큰 값을 answer 배열에 넣어준다. 단, 같을 경우는 오름차순으로 넣어준다.
def solution(answers):
    cnt = [0, 0, 0]
    a=[1,2,3,4,5]
    b=[2,1,2,3,2,4,2,5]
    c=[3,3,1,1,2,2,4,4,5,5]

    for i in range(len(answers)):
        if a[i%len(a)] == answers[i]:
            cnt[0]+=1
        if b[i%len(b)] == answers[i]:
            cnt[1]+=1
        if c[i%len(c)] == answers[i]:
            cnt[2]+=1

    answer = []
    for idx, score in enumerate(cnt):
        if score == max(cnt):
            answer.append(idx+1)
    return answer

score 배열에서 큰값을 찾아주는 것에 고민을 했는데, 다른 사람의 코드를 참고하여 enumerate 함수를 이용하여 구해주었다.

enumerate 함수는 인덱스 번호와 컬렉션의 원소를 tuple 형태로 반환한다.

t = [1,5,7,33,39,52]

for i,v in enumerate(t):
		print("index : {}, value: {}".format(i,v))

# 결과
index : 0, value: 1
index : 1, value : 5
.
.
.
index : 5, value : 52

0개의 댓글