-->

[프로그래머스] 완전탐색 - 모의고사 (파이썬)

프로그래머스 완전탐색 - 모의고사, 문제 확인

정렬 문제를 끝내고 이제 완전탐색 문제이다.

 

아래와 같이 답을 찍는 1,2,3번의 수포자가 있을 때 누가 제일 답을 많이 맞췄는지 리스트로 리턴하면 된다. 만약 답을 맞춘 수가 5,5,5 라면 [1,2,3]을 리턴하면 된다.

 


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, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

 

 

프로그래머스 완전탐색 - 모의고사, 문제 풀이 (파이썬)

문제 수가 최대 10000개라고 해서 각 찍는 방식에 맞춰 10000개의 리스트 3개를 구성해주었다. 그리고 반복문에 zip을 사용해 list1,list2,list3와 answers를 전부 같이 돌면서 몇개씩 맞추고 있는지 count1,count2,count3를 생성해주었다. max값을 구한 후 max값인 인덱스+1을 리턴 리스트인 answer에 추가해주면 된다.

 

def solution(answers):
    answer = []
    count1 = 0; count2 = 0; count3 =0
    list1 = [1,2,3,4,5] * 2000
    list2 = [2,1,2,3,2,4,2,5] * 1250
    list3 = [3,3,1,1,2,2,4,4,5,5] * 1000
    
    for v1,v2,v3,ans in zip(list1,list2,list3,answers):
        if v1 == ans : count1+=1
        if v2 == ans : count2+=1
        if v3 == ans : count3+=1
    
    tmp = [count1,count2,count3]
    max_tmp = max(tmp)
    for i,v in enumerate(tmp): 
        if v == max_tmp : answer.append(i+1)

    return answer

 

 

이번 문제는 level1이라 그런지 별로 어렵지 않다. 아래와 같이 쉽게 모든 테스트케이스를 통과할 수 있다.

 

 

댓글

Designed by JB FACTORY