[Programmers] 상호평가

suhyun·2021년 10월 3일
0

백준/프로그래머스

목록 보기
3/81

WeeklyChallenge02

생각할수록 풀 수 있는 방법이 너무 많은 문제다

문제 링크

상호평가

문제 풀이

def column(matrix, i):
    return [row[i] for row in matrix]

def getGrade(score):
    if score >= 90:
        grade = 'A'
    elif score >= 80 and score < 90:
        grade = 'B'
    elif score >= 70 and score < 80:
        grade = 'C'
    elif score >= 50 and score < 70:
        grade = 'D'
    else:
        grade = 'F'
    return grade

def getAverage(scores):
    sum = 0
    for i in scores:
        sum += i
    avg = sum / len(scores)
    return avg


def getCount(scores):
    new_list = {}
    for i in scores:
        try:
            new_list[i] += 1
        except:
            new_list[i] = 1
    return new_list


def solution(scores):
    answer = ''
    length = len(scores[0])

    for i in range(length):
        new_list = column(scores, i)
        new_dict = getCount(new_list)

        min = new_list[0]
        max = new_list[0]

        for j in new_list:
            if min > j:
                min = j
            if max < j:
                max = j

        if max == new_list[i] and new_dict[max] == 1:
            del new_list[i]
        elif min == new_list[i] and new_dict[min] == 1:
            del new_list[i]
        avg = getAverage(new_list)
        answer += getGrade(avg)
    return answer

느낀점

나는 60줄이 넘어가는데 이걸 한줄에 끝낸 사람도 있더라..
나같이 푸는거는 진짜 딱 학부 1학년 수준인거같다

우선 2차원 배열에서 numpy없이 열 뽑아내는거에서 좀 헤맸다
그거 빼면 어려운거 없었지만
내 코드는 진짜 별로라는건 알겠다
열심히하자

profile
꾸준히 하려고 노력하는 편 💻

0개의 댓글