티스토리 뷰
<풀이>
- 코드는 총 3파트로 활용할 데이터를 추려내는 파트, 점수 계산 파트, 고득점자 추려내는 파트가 있다.
- 점수 계산하는 파트에서 찍는 번호 순서가 담은 리스트를 계속 반복해서 참조해야 하기 때문에 answers의 idx인 a에서 순서 리스트의 길이를 나눈 후 나머지를 인덱스로 지정하였다.
- 고득점자를 추려내는 파트에서는 현재 최고 점수보다 더 큰 점수가 나오면 answer를 초기화시키고 고득점자를 추가하고 최고 점수와 같은 점수가 나오면 고득점자 한 명을 추가시키는 방식으로 구현하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
def solution(answers):
# 수포자들 점수 배치 계산
first = [1, 2, 3, 4, 5]
second = [2, 1, 2, 3, 2, 4, 2, 5]
third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
len_f = len(first)
len_s = len(second)
len_t = len(third)
scores = [0, 0, 0]
# 점수 계산
for a in range(len(answers)):
if answers[a] == first[a % len_f]:
scores[0] += 1
if answers[a] == second[a % len_s]:
scores[1] += 1
if answers[a] == third[a % len_t]:
scores[2] += 1
answer = []
max_score = -1
# 계산 된 점수를 보고 고득점자 추려내기
for s in range(len(scores)):
if max_score < scores[s]:
max_score = scores[s]
answer.clear()
answer.append(s+1)
elif max_score == scores[s]:
answer.append(s+1)
return answer
|
cs |
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 카펫 (0) | 2020.12.17 |
---|---|
[프로그래머스] 소수 찾기 (0) | 2020.12.16 |
[프로그래머스] 단어 변환 (0) | 2020.12.14 |
[프로그래머스] 네트워크 (0) | 2020.12.14 |
[프로그래머스] 타겟 넘버 (0) | 2020.12.14 |
댓글