https://www.acmicpc.net/problem/1546
1546번: 평균
첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보
www.acmicpc.net
: 점수를 특정 식을 이용해 수정해서 다시 평균을 구하는 문제
내가 작성한 알고리즘
#include <stdio.h>
int main()
{
int n, tmp, max = 0, sum = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &tmp);
sum += tmp;
if(tmp > max) max = tmp;
}
printf("%f", (float)sum/max*100/n);
}
초반에 어렵게 생각해서 함수로 새로운 값 구하고, 꼬아서 생각하다가 싹 지우고 다시 작성한 코드.
최대값을 구할 때 입력받으면서 바로 구하도록 구현했고,
평균을 구할 때도 입력받아서 일일히 수정하고 더해서 평균을 구하는 방식이 아니라
입력과 동시에 합산해서 한번에 평균을 내는 방식으로 구현했다.
알고리즘을 풀면서 항상 고민되는 부분은 이런 간단한 부분인 것 같다.
어떻게 최댓값, 최솟값을 구할 것인지, 어떻게 정렬할 것인지 등등
항상 어떤 식으로 구현하는게 최고의 방법일까 고민하게 된다.
이렇게 계속 고민하면서 더 좋은 코드를 작성할 수 있게 되었으면 좋겠다
'알고리즘 > 백준' 카테고리의 다른 글
| [JavaScript/BFS] 백준 골드 5 : 18405 - 경쟁적 전염 (0) | 2023.08.12 |
|---|---|
| [JavaScript/DFS] 백준 골드 4 : 14502 - 연구소 (0) | 2023.08.12 |
| [C++] - 백준(Baekjoon) : 4673번 셀프넘버 (0) | 2022.06.22 |
| [C] - 백준(Baekjoon) : 2480번 주사위 3개 (0) | 2022.06.07 |
| [C] - 백준(Baekjoon) : 2588번 곱셈 (0) | 2022.06.04 |