오랑우탄의 반란
프로그래머스 | 모의고사 (Python3) Enumerate 본문
반응형
오늘도 오랑이는 문제를 풉니다.
모의고사
풀이 과정
- 각 수포자의 답이 answers 리스트와 일치하는지 비교
- 일치할 경우 리스트 형태로 각각 점수 부여
- 부여된 점수 중 최고값에 해당하는 인덱스값 + 1 을 리스트로 반환
위 조건에 따라 코드를 설계해봅시다.
우선 전체 점수와 각 수포자의 답을 리스트 형태로 저장해줍니다.
def solution(answers):
answer = []
score = [0,0,0]
g1 = [1,2,3,4,5]
g2 = [2,1,2,3,2,4,2,5]
g3 = [3,3,1,1,2,2,4,4,5,5]
이제 조건을 나열해봅시다.
각 수포자에 대해 answers[ i ] 와 g[ i % 리스트 길이] 를 비교해줍니다.
나머지값으로 answers 길이가 g보다 길어져도 자동으로 반복되게 할 수 있습니다.
비교 시 같으면 score 의 각 인덱스값에 대해 1을 더해줍니다.
for i in range(len(answers)):
if answers[i] == g1[i%5]:
score[0] += 1
if answers[i] == g2[i%8]:
score[1] += 1
if answers[i] == g3[i%10]:
score[2] += 1
Enumerate(리스트)
리스트의 경우 각 인덱스와 리스트값을 한 쌍으로 반환
최종 answer 를 얻기 위해서는 enumerate 를 사용합니다.
반환된 인덱스와 값에 대해, 값이 score 의 최대값과 동일한 경우 인덱스+1 을 answer 에 넣어줍니다.
for idx, num in enumerate(score):
if num == max(score):
answer.append(idx+1)
최종 코드
def solution(answers):
answer = []
score = [0,0,0]
g1 = [1,2,3,4,5]
g2 = [2,1,2,3,2,4,2,5]
g3 = [3,3,1,1,2,2,4,4,5,5]
for i in range(len(answers)):
if answers[i] == g1[i%5]:
score[0] += 1
if answers[i] == g2[i%8]:
score[1] += 1
if answers[i] == g3[i%10]:
score[2] += 1
for idx, num in enumerate(score):
if num == max(score):
answer.append(idx+1)
return answer
오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~
반응형
'PYTHON > 프로그래머스' 카테고리의 다른 글
프로그래머스 | 덧칠하기 (파이썬) (2) | 2024.08.06 |
---|---|
프로그래머스 | 소수 만들기 (파이썬) combination, 에라토스테네스의 체 (0) | 2024.07.31 |
프로그래머스 | 과일 장수 (Python3) (4) | 2024.07.22 |
프로그래머스 | 2016년 (Python3) (0) | 2024.07.22 |
프로그래머스 | 명예의 전당 (1) (Python3) (1) | 2024.07.16 |