일단 이렇게 풀었다. 너무 난잡해 보여서 다른 사람들의 코드를 한 번 봐야지일단 이렇게 풀었다. 너무 난잡해 보여서 다른 사람들의 코드를 한 번 봐야지
def solution(answers):
solve = []
one = 0
two = 0
three = 0
one_list = [1,2,3,4,5]
two_list = [2,1,2,3,2,4,2,5]
three_list = [3,3,1,1,2,2,4,4,5,5]
for i in range(len(answers)):
if answers[i] == one_list[i%5]:
one += 1
if answers[i] == two_list[i%8]:
two += 1
if answers[i] == three_list[i%10]:
three += 1
sample = [one, two, three]
max_index = max(sample)
for i in range(0,3):
if sample[i] == max_index:
solve.append(i + 1)
return solve
그냥 대부분 동일하게 풀었구나.... 아래는 깔끔히 정리한 코드다. 기본 로직은 같다. 코드는 깔끔한데 이해하는데는
그렇게 깔끔하지는 않은듯.
그래도 이렇게도 풀 수 있구나를 좀 배웠다. 이해는 되지만 직접 구현하라고 하면 조금은 어려울듯
def solution(answers):
p = [[1, 2, 3, 4, 5],
[2, 1, 2, 3, 2, 4, 2, 5],
[3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
s = [0] * len(p)
for q, a in enumerate(answers): # answers 인덱스 번호와 같이 for
for i, v in enumerate(p): #p 1, 2, 3 다 검사함
if a == v[q % len(v)]: # 수포자 1번, 2번 3번 인덱스 모두 정답과 맞는지 확인
s[i] += 1 # 1,2,3 번 사람들 정답이면 s에 그 해당하는 인덱스 정답수 ++
return [i + 1 for i, v in enumerate(s) if v == max(s)] #최대값 찾아서 거기서 맞은 인덱스 +1 을 정답으로 제출
[프로그래머스] 스킬트리 파이썬 (0) | 2021.03.25 |
---|---|
프로그래머스 주식가격 파이썬 (0) | 2021.03.25 |
프로그래머스 더 맵게 파이썬 (0) | 2021.03.23 |
프로그래머스 더 맵게 파이썬 (0) | 2021.03.23 |
다리를 지나는 트럭 파이썬 (0) | 2021.03.23 |
댓글 영역