ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ 백준 1546 번 ] 평균
    코딩 공부/Baekjoon Problem_Set 2021. 7. 7. 13:45

    이번에는 백준 1546번 문제를 풀어봅시다. 

     

    <문제>

    세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.

    예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.

    세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.

     

    <입력>

    첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보다 크다.

     

    <아이디어>

    시험 본 과목의 수 N을 입력으로 받자

    현재 성적을 입력으로 받자 --> 한 줄에 입력을 받아야한다.

    점수 중에서 최대값을 뽑아내자 --> max() 함수를 이용해보자

    새로운 점수를 만들고 새로운 평균을 구해보자 --> 간단한 연산 

     

    #1546번
    N = int(input()) #시험 본 과목 수 
    grade = list(map(int,input().split())) #점수를 입력으로 받자 한 줄에 
    mx = max(grade) # 최대값 산출
    new_score = 0 #새로운 점수를 다 더해줄 변수 초기화
    for i in grade: #반복문 돌면서 
        new_score += i/mx*100 # 새로운 점수를 다 더해줌
    print(new_score/N) #과목수로 나누어서 새로운 평균 산출

    더 좋은 코드와 알고리즘이 있을테지만 아직 저의 수준에서는 약간 무식한 방법이라고 생각이 듭니다. 더 열심히 공부해봅시다. 

Designed by Tistory.