Algorithm/Problems
99클럽 코테 스터디 20일차 TIL + 완전탐색
공부좀하시졍
2024. 11. 17. 01:05
https://school.programmers.co.kr/learn/courses/30/lessons/42840
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
def solution(answers):
a = [1,2,3,4,5]
b = [2,1,2,3,2,4,2,5]
c = [3,3,1,1,2,2,4,4,5,5]
score = [0,0,0]
for i, answer in enumerate(answers):
if answer == a[i%len(a)]:
score[0] += 1
if answer == b[i%len(b)]:
score[1] += 1
if answer == c[i%len(c)]:
score[2] += 1
result = []
for i, s in enumerate(score):
if s == max(score):
result.append(i+1)
return result
- 1번, 2번, 3번 수포자가 찍는 답안의 규칙을 담은 리스트 3개를 선언하고 각 수포자의 점수를 계산하는 리스트를 선언한다.
- 주어진 answers 리스트를 enumerate 함수를 이용해 idx와 idx 값을 이용해 주어진 답과 나머지연산(%)으로 각 수포자의 찍는 답을 비교하며 점수를 계산한다.
- enumerate 함수는 순서가 있는 자료형 (list, set,dictionary, string, tuple)을 입력으로 받았을 떄 인덱스와 값을 함께 리턴해준다.
- score 리스트의 max값과 비교하여 같은 값을 가진 idx + 1을 result 리스트에 넣어 return 해준다.
- score를 구할 때 elif를 사용하면 같은 답을 찍었을 때 위 조건문에 걸리면 아래 조건문을 타지 않기 때문에 if문으로 작성해야한다!!!