728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42840
1번, 2번, 3번 수포자 중 정답 수가 가장 많은 수포자 넘버를 리턴(같으면 모두 리턴)
1번, 2번, 3번 수포자의 규칙을 구현
정답과 비교한 후 제일 정답 수 카운트
-> 3개짜리 리스트에 0을 저장
정답 수가 가장 많은 수포자 넘버 리턴
-> max(리스트)와 같으면 모두 추가
수포자 규칙 구현 방법 및 정답과 비교하여 카운트
-리스트 사용
def solution(answers):
num1 = [1,2,3,4,5]
num2 = [2,1,2,3,2,4,2,5]
num3 = [3,3,1,1,2,2,4,4,5,5]
right = [0,0,0]
for idx, ans in enumerate(answers):
if int(num1[idx%len(num1)]) == ans:
right[0] += 1
if int(num2[idx%len(num2)]) == ans:
right[1] += 1
if int(num3[idx%len(num3)]) == ans:
right[2] += 1
-2차원 리스트 사용(반복문에 쓸 때 간편)
def solution(answers):
num_list =[[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]]
right = [0,0,0]
for idx, ans in enumerate(answers):
for i in range(3):
if num_list[i][idx%len(num_list[i])] == ans:
right[i]+=1
정답 수가 가장 많은 수포자 넘버 리턴
-append 사용
answer = []
for i in range(3)
if right[i] == max(right):
answer.append(i+1)
return answer
-append 사용 없이 바로 리스트로 저장
return [i+1 for i in range(3) if right[i] == max(right)]
답
def solution(answers):
num_list =[[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]]
right = [0,0,0]
for idx, ans in enumerate(answers):
for i in range(3):
if num_list[i][idx%len(num_list[i])] == ans:
right[i]+=1
return [i+1 for i in range(3) if right[i] == max(right)]
<참고>
인덱스와 요소를 한 번에 받을 수 있는 enumerate 사용하기
https://www.daleseo.com/python-enumerate/
for if-else문을 사용하여 리스트 만들기
https://ychaeeun.github.io/python/python-for-if-oneline/