[프로그래머스] 완전탐색 - 모의고사 (파이썬)
- 프로그래밍/프로그래머스
- 2020. 5. 19. 03:03
반응형
프로그래머스 완전탐색 - 모의고사, 문제 확인
정렬 문제를 끝내고 이제 완전탐색 문제이다.
아래와 같이 답을 찍는 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이라 그런지 별로 어렵지 않다. 아래와 같이 쉽게 모든 테스트케이스를 통과할 수 있다.
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 탐욕법(Greedy) - 체육복 (파이썬) (0) | 2020.06.09 |
---|---|
[프로그래머스] 완전탐색 - 소수 찾기 (파이썬) (0) | 2020.05.20 |
[프로그래머스] 정렬 - H-Index (파이썬) (0) | 2020.05.18 |
[프로그래머스] 정렬 - 가장 큰 수 (python) (0) | 2020.05.17 |
[프로그래머스] 정렬 - K번째수 (python) (0) | 2020.05.17 |