티스토리 뷰

위클리 챌린지 2주차

def solution(scores):
    answer = ''
    for j in range(len(scores)):
        cnt = len(scores)
        add = 0
        high = 0
        low = 101
        for i in range(len(scores)):
            add += scores[i][j]
            if i == j:
                continue
            if high < scores[i][j]:
                high = scores[i][j]
            elif low > scores[i][j]:
                low = scores[i][j]

        if scores[j][j] > high or scores[j][j] < low:
            add -= scores[j][j]
            cnt -= 1
        grade = add / cnt
        if grade >= 90:
            answer += 'A'
        elif 80 <= grade < 90:
            answer += 'B'
        elif 70 <= grade < 80:
            answer += 'C'
        elif 50 <= grade < 70:
            answer += 'D'
        else:
            answer += 'F'

    return answer

처음에 문제를 잘못 읽었다!ㅋㅋ

일단 cnt(카운트)를 모든 학생 수로 잡았다.

이중 포문으로 돌면서 각 열에 대한 점수들을 덧셈을 해준다.

이 때, 최대값, 최소값을 저장해준다. 만약 i == j이면 자기 자신이 평가한 점수이므로 continue로 최소값 최대값 구하는 곳에서는 패스한다.

각 행들을 열에 대해서 다 돌았으면 i == j인 것이(자기 자신이 평가한 것) score[j][j]가 되므로 이게 최대값 보다 크거나 최소값보다 작다면 평균을 구하는 곳에서는 제외해줘야한다. 따라서 add에서 score[j][j]를 빼준다. 물론 cnt(카운트)에서도 하나 빼준다.

그리고 grade라는 변수를 만들어 add/cnt를 해서 평균을 구해 각 구간에 맞는 점수를 answer에 저장해준다.

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