본문 바로가기
Coding Test (코딩 테스트)

코딩테스트 14일차(2025.01.30) - 백준1546번(평균)

by BioLearner 2025. 1. 30.
반응형

 

첫째줄 시험본 과목 개수 N

둘째줄 성적

 

이줄 최댓값 M 모든 점수를 점수/M*100으로 고친다. 이를 토대로 성적을 출력하는 프로그램 작성

count = int(input())
scores = list(map(float, input().split()))
scores.sort()

for i in range(count):
    scores[i] = scores[i] / scores[-1] * 100

print(sum(scores)/count)

 

결과: 정답

또 다른 풀이

subject = int(input())
scores = list(map(int, input().split()))
M = max(scores)

for i in range(subject):
    scores[i] = scores[i]/M*100

print(sum(scores)/subject)

 

 

[BAEKJOON]백준 1546번: 평균 파이썬

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

bambbang00.tistory.com

이 풀이는 내가 했던 방법과는 다르게 sort를 쓴다음 가장 마지막에 있는 숫자를 집어넣는 방법을 사용하지 않고 애초에 max함수를 사용하여 문제를 간단하게 풀었다.

 

고찰

float과 int의 차이점은?

성적을 저장할 때 float으로 처리한 것과 int로 처리한 것에 차이가 있다. float은 소수점 값을 처리할 수 있기 때문에 더 정확한 결과를 낼 수 있다. 만약 int로만 처리했다면 소수점 이하 값은 잘리게 되어 정확하지 않을 수 있다. 다른 문제를 풀때에도 float을 사용하는 이유와 어떤 상황에서 int를 사용해야 하는지에 대해 고민해볼 수 있다.

반응형