문제 링크 : https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net



문제 요약
점수 중에 최댓값을 골라 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 한 후 평균값을 구하라
TRY CODE
n = int(input())
grade = input().split()
max_grade = max(grade)
grade_list=[]
for i in grade:
g = int(i) / int(max_grade) * 100
grade_list.append(g)
print(sum(grade_list)/n)
문제점
- 성적 목록을 1 2 4 8 16으로 입력하였을 경우 최대 값이 8으로 정의 되기 때문에 결과 값이 다르게 나왔다
해결법
- 성적의 목록을 int형으로 변형시켜서 list에 넣어주었다
CODE
n = int(input())
grade = list(map(int,input().split()))
max_grade = max(grade)
grade_list=[]
for i in grade:
g = int(i) / max_grade * 100
grade_list.append(g)
print(sum(grade_list)/n)
풀이
1. n에 과목의 수를 int 형으로 받아준다.
n = int(input())
2. grade에 각 과목의 성적을 인트형으로 받아서 리스트 형으로 넣어준다.
grade = list(map(int,input().split()))
3. 각 과목중 최대 값을 구해서 max_grade에 넣어준다.
max_grade = max(grade)
4. grade_list 라는 리스트를 만들어준다.
grade_list=[]
5. grade의 값들을 i에 넣으면서 for 문을 진행
- 문제에서 주어진 방법으로 과목별 성적을 구하여 g 에 넣어준다
- g의 성적을 grade_list에 넣어준다
for i in grade:
g = int(i) / max_grade * 100
grade_list.append(g)
6. grade_list의 합을 전체 과목수로 나누어서 평균을 구한 값을 출력해준다.
print(sum(grade_list)/n)
'Python > 알고리즘 - 백준' 카테고리의 다른 글
[백준] 2577 : 숫자의 갯수 (파이썬) (2) | 2022.10.06 |
---|---|
[백준] 2562 : 최댓값 (파이썬) (0) | 2022.10.06 |
[백준] 2475 : 검증수 (파이썬) (0) | 2022.10.05 |
1157번 (0) | 2022.09.29 |
1000번 문제 (0) | 2022.09.22 |
문제 링크 : https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net



문제 요약
점수 중에 최댓값을 골라 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 한 후 평균값을 구하라
TRY CODE
n = int(input())
grade = input().split()
max_grade = max(grade)
grade_list=[]
for i in grade:
g = int(i) / int(max_grade) * 100
grade_list.append(g)
print(sum(grade_list)/n)
문제점
- 성적 목록을 1 2 4 8 16으로 입력하였을 경우 최대 값이 8으로 정의 되기 때문에 결과 값이 다르게 나왔다
해결법
- 성적의 목록을 int형으로 변형시켜서 list에 넣어주었다
CODE
n = int(input())
grade = list(map(int,input().split()))
max_grade = max(grade)
grade_list=[]
for i in grade:
g = int(i) / max_grade * 100
grade_list.append(g)
print(sum(grade_list)/n)
풀이
1. n에 과목의 수를 int 형으로 받아준다.
n = int(input())
2. grade에 각 과목의 성적을 인트형으로 받아서 리스트 형으로 넣어준다.
grade = list(map(int,input().split()))
3. 각 과목중 최대 값을 구해서 max_grade에 넣어준다.
max_grade = max(grade)
4. grade_list 라는 리스트를 만들어준다.
grade_list=[]
5. grade의 값들을 i에 넣으면서 for 문을 진행
- 문제에서 주어진 방법으로 과목별 성적을 구하여 g 에 넣어준다
- g의 성적을 grade_list에 넣어준다
for i in grade:
g = int(i) / max_grade * 100
grade_list.append(g)
6. grade_list의 합을 전체 과목수로 나누어서 평균을 구한 값을 출력해준다.
print(sum(grade_list)/n)
'Python > 알고리즘 - 백준' 카테고리의 다른 글
[백준] 2577 : 숫자의 갯수 (파이썬) (2) | 2022.10.06 |
---|---|
[백준] 2562 : 최댓값 (파이썬) (0) | 2022.10.06 |
[백준] 2475 : 검증수 (파이썬) (0) | 2022.10.05 |
1157번 (0) | 2022.09.29 |
1000번 문제 (0) | 2022.09.22 |