티스토리 뷰

 

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

<풀이>

  • 코드는 총 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 = [12345]
    second = [21232425]
    third = [3311224455]
    
    len_f = len(first)
    len_s = len(second)
    len_t = len(third)
    
    scores = [000]
    
    # 점수 계산
    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

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함