백준 1546번 문제 풀이 평균 구하기 파이썬

반응형
    728x90
    반응형

    1. 문제

    2. 답안

    초안

    # 첫째 줄에 시험 과목수 n 줄째 줄에 현재 성적
    n = int(input("과목 수 입력"))
    scoreLi = []
    for score in range(n):
        score = int(input("현재 점수 입력"))
        scoreLi.append(score)
    
    sortedScore = sorted(scoreLi, reverse=True)
    
    reScoreLi = []
    maxScore = sortedScore[0]
    for reScore in sortedScore:
        reScore = reScore/maxScore*100
        reScoreLi.append(reScore)
    avg = sum(reScoreLi)/len(reScoreLi)
    print(avg)

    과목 수를 입력받고 반복문을 통해 점수 리스트를 만든다.

    정렬 함수를 통해 내림 차순으로 정렬시킨다.

    다시 반복문을 통해 조작된 점수 리스트를 만들고 평균을 구한다.

    답은 정상적으로 출력되지만 런타임 오류가 발생 했다.

     

    최종안

    n = int(input("과목 수 입력"))
    scoreLi = list(map(int, input("현재 점수 입력").split()))
    
    maxScore = max(scoreLi)
    for reScore in range(n):
        scoreLi[reScore] = scoreLi[reScore]/maxScore*100
    print(sum(scoreLi)/n)

    map 함수를 써서 첫 번째 for문을 제거 하고

    두번째 for문을 다음과 같이 손봐서 scoreLi 리스트가

    새로운 점수를 요소로 갖도록 바꾸었다.

    728x90
    반응형

    댓글

    Designed by JB FACTORY