728x90
<문제 설명>
https://programmers.co.kr/learn/courses/30/lessons/42840
3명의 수포자가 나온다. 각 수포자들은 본인만의 찍는 방식이 있는데 이를 가지고 주어진 답과 비교하여 제일 문제를 많이 맞춘 사람(들)을 리턴하면 된다.
입출력의 예는 다음과 같다.
answers | return |
[1,2,3,4,5] | [1] |
[1,3,2,4,2] | [1,2,3] |
<문제 해결 아이디어>
완전 탐색 문제인 만큼 주어진 답을 전부 순회하면서 수포자의 찍는 방식과 비교하여 각 수포자 별로 몇 문제를 맞췄는지를 확인해보면 된다.
<문제 풀이 코드>
def solution(answers):
answer = []
a1 = [1,2,3,4,5]
a2 = [2, 1, 2, 3, 2, 4, 2, 5]
a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
cnt1,cnt2,cnt3 = 0,0,0
for i in range(len(answers)):
ia1 = i%5
ia2 = i%8
ia3 = i%10
if a1[ia1] == answers[i]:
cnt1 += 1
if a2[ia2] == answers[i]:
cnt2 += 1
if a3[ia3] == answers[i]:
cnt3 += 1
maxCnt = max(cnt1,cnt2,cnt3)
if maxCnt == cnt1:
answer.append(1)
if maxCnt == cnt2:
answer.append(2)
if maxCnt == cnt3:
answer.append(3)
return answer
728x90
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스 lv 2] 주식가격.py (0) | 2022.02.10 |
---|---|
[자료구조] 스택, 큐 (0) | 2022.02.09 |
[프로그래머스 lv 1] 자연수 뒤집어 배열로 만들기.py (0) | 2022.02.03 |
[프로그래머스 lv 1] 2016년.py (0) | 2022.02.02 |
[프로그래머스 lv 1] 시저암호.py (0) | 2022.01.31 |