▷ 문제
세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다.
예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다.
세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.
▷ 전체 코드
N = int(input())
X = list(map(int, input().split()))
Y = []
for i in X:
Y.append(i/max(X)*100)
print(sum(Y)/len(Y))
▷ 코드 분석
N = int(input())
변수 N에 시험 본 과목의 개수를 저장한다.
input() 함수를 사용해 입력 받은 요소를 문자열로 변수에 저장한다.
int() 함수를 사용해 입력 받은 문자열을 정수형으로 변환한다.
X = list(map(int, input().split()))
리스트 X에 입력 받은 요소들을 저장한다.
list() 함수를 사용해 리스트를 만든다. map() 함수를 사용해 입력 받은 요소에 지정된 함수를 저장한다.
input() 함수를 사용해 입력 받은 요소를 문자열로 변수에 저장한다. split() 함수를 사용해 입력 받은 요소를 공백을 기준으로 나눠준다.
int() 함수를 사용해 문자열을 정수형으로 바꿔준다.
Y = []
리스트 Y를 생성한다.
for i in X:
Y.append(i/max(X)*100)
리스트 X에 저장한 점수를 최대값으로 나눈 후 100을 곱한다.
for 문을 사용해 리스트 X의 요소를 순서대로 i에 넣어주는 반복문을 만든다.
append() 함수를 사용해 리스트 X의 요소를 리스트 X의 최대값으로 나눈 후 100을 곱한 값을 리스트 Y에 추가한다.
print(sum(Y)/len(Y))
리스트 Y의 평균을 출력한다.
파이썬에 평균을 구하는 함수가 없기 때문에 sum() 함수를 사용해 리스트 Y의 합을 구하고,
len() 함수를 사용해 리스트 Y의 개수를 구한다. 그리고 print() 함수로 합에서 개수를 나눈 평균값을 출력한다.
'기초 프로그래밍 > Python' 카테고리의 다른 글
[백준] 2743번 파이썬 python(단어 길이 재기) (0) | 2023.08.15 |
---|---|
[백준] 27866번 파이썬 python(문자와 문자열) (0) | 2023.08.15 |
[백준] 10811번 파이썬 python(바구니 뒤집기) (0) | 2023.08.15 |
[백준] 3052번 파이썬 python(나머지) (0) | 2023.08.13 |
[백준] 5597번 파이썬 python(과제 안 내신 분..?) (0) | 2023.08.13 |