-
[ 백준 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) #과목수로 나누어서 새로운 평균 산출
더 좋은 코드와 알고리즘이 있을테지만 아직 저의 수준에서는 약간 무식한 방법이라고 생각이 듭니다. 더 열심히 공부해봅시다.
'코딩 공부 > Baekjoon Problem_Set' 카테고리의 다른 글
[ 백준 4344번 ] 평균은 넘겠지. (0) 2021.07.09 [ 백준 8958번 ] OX퀴즈 문제 (0) 2021.07.09 [ 백준 3052번 ] 나머지 문제 (0) 2021.07.07 [ 백준 1110번 ] 더하기 사이클 구하기 (0) 2021.07.04 [ 백준 10871번 ] X보다 작은 수 출력 (0) 2021.02.24