728x90
반응형
문제:
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다.
수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다.
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....
1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answer가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주세요.
풀이 방법:
문제가 완전탐색을 활용하여 푸는 것이므로, 모든 경우의 수를 다 따져주면 된다.
수포자의 패턴 리스트를 만든 후에 answers 보다 충분히 크게만 만들어주면 된다. 이후 반복문을 활용해서 맞은 사람의 값만 1씩 올려준 뒤 가장 큰 값의 인덱스를 answer_list에 넣으면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def solution(answers): answer = [0,0,0] answer_list=[] supoja_1=list(range(1,6))*2*((len(answers)//10)+1) supoja_2=[2,1,2,3,2,4,2,5]*((len(answers)//8)+1) supoja_3=[3,3,1,1,2,2,4,4,5,5]*((len(answers)//10)+1) for i in range(len(answers)): if answers[i]==supoja_1[i]: answer[0]+=1 if answers[i]==supoja_2[i]: answer[1]+=1 if answers[i]==supoja_3[i]: answer[2]+=1 for i in range(len(answer)): if answer[i] == max(answer): answer_list.append(i+1) else: pass return answer_list | cs |
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[Programmers]Lv 2. H-Index (0) | 2019.02.18 |
---|---|
[Programmers]Lv 2.전화번호 목록 (0) | 2019.02.16 |
[Programmers]Lv 2. 소수 찾기 (0) | 2019.02.14 |
[Programmers]Lv 1. 체육복 (0) | 2019.02.13 |
[Programmers]Lv2. 큰 수 만들기 (0) | 2019.02.12 |