반응형
첫째줄 시험본 과목 개수 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)
이 풀이는 내가 했던 방법과는 다르게 sort를 쓴다음 가장 마지막에 있는 숫자를 집어넣는 방법을 사용하지 않고 애초에 max함수를 사용하여 문제를 간단하게 풀었다.
고찰
float과 int의 차이점은?
성적을 저장할 때 float으로 처리한 것과 int로 처리한 것에 차이가 있다. float은 소수점 값을 처리할 수 있기 때문에 더 정확한 결과를 낼 수 있다. 만약 int로만 처리했다면 소수점 이하 값은 잘리게 되어 정확하지 않을 수 있다. 다른 문제를 풀때에도 float을 사용하는 이유와 어떤 상황에서 int를 사용해야 하는지에 대해 고민해볼 수 있다.
반응형
'Coding Test (코딩 테스트)' 카테고리의 다른 글
코딩테스트 15일차(2025.01.31) - 백준2743번(단어 길이 재기) (0) | 2025.01.31 |
---|---|
코딩테스트 15일차(2025.01.31) - 백준27866번(문자와 문자열) (0) | 2025.01.31 |
코딩테스트 14일차(2025.01.30) - 백준10811번(바구니 뒤집기) (0) | 2025.01.30 |
코딩테스트 14일차(2025.01.30) - 백준3052번(나머지) (0) | 2025.01.30 |
코딩테스트 14일차(2025.01.30) - 백준5597번(과제 안 내신 분..?) (0) | 2025.01.30 |