cyphen156

백준-1차원 배열 1546 평균 본문

컴퓨터공학/알고리듬 풀이

백준-1차원 배열 1546 평균

cyphen156 2024. 9. 19. 14:03

1546번: 평균 (acmicpc.net)

 

과목수 N개의 시험 성적 중 최댓값을 찾고 나머지 하위 점수들을 X*100/M한 값으로 고치는 것

제약사항

  • 0 < N <= 1,000
  • 0 <= INPUT <= 100, at least one score is greater than 0

주의 사항

출력값 오차범위가 존재한다. 절대오차 또는 상대오차 10**-2는 소숫점 이하 두자리 까지 출력하라는 소리가 아니라 어느정도 오차를 허용한다는 소리이다.

C 풀이

평균_1546.c

값을 따로 저장안했다 어차피 평균 구하는 것이고 따로 저장할 이유도 없어보여서

/**
* 백준 1차원 배열 1546 평균
* 과목수 N개의 시험 성적 중 최댓값을 찾고 나머지 하위 점수들을 X*100/M한 값으로 고치는 것
* 
* 제한사항
*****************************************
* 0 < N <= 1,000                        *
* 0 <= INPUT <= 100                     *
* at least one score is greater than 0  *
*****************************************
*
*
*
* 주의
* 출력값 오차범위가 존재한다. 절대오차 또는 상대오차 10**-2는 소숫점 이하 두자리 까지 출력하라는 소리가 아닌
* 어느정도 오차를 허용한다는 소리이다.
*
* 풀이시간 5분
*/
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>


int main(void)
{
    int N, Input, max = 0;
    float sum = 0;
    scanf("%d", &N);

    for (int i = 0; i < N; ++i)
    {
        scanf("%d", &Input);
        if (max < Input)
        {
            max = Input;
        }
        sum += Input;
    }
    printf("%f", (sum * 100) / (max * N));
	return 0;
}

C++ 풀이

평균_1546.cpp

배열에 스코어 점수를 저장하고, 값을 변환하여 덮어쓰기

/**
* 백준 1차원 배열 1546 평균
* 과목수 N개의 시험 성적 중 최댓값을 찾고 나머지 하위 점수들을 X*100/M한 값으로 고치는 것
* 
* 제한사항
*****************************************
* 0 < N <= 1,000                        *
* 0 <= INPUT <= 100                     *
* at least one score is greater than 0  *
*****************************************
*
*
*
* 주의
* 출력값 오차범위가 존재한다. 절대오차 또는 상대오차 10**-2라면 소숫점 이하 두자리 까지 출력하라는 소리다.
*
* 풀이시간 5분
*/
#include <iostream>

using namespace std;

int main() {
    int N, MAX = 0;
    float sum = 0;

    cin >> N;

    float* arr = new float[N];

    for (int i = 0; i < N; ++i)
    {
        cin >> arr[i];
        if (MAX < (int)arr[i])
        {
            MAX = (int)arr[i];
        }
    }

    for (int i = 0; i < N; ++i)
    {
        arr[i] /= (MAX);
        arr[i] *= 100;
        sum += arr[i];
    }
    cout << sum / N << "\n";
    
    delete[] arr;
    return 0;
}

 

모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.

Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub

 

Workspace/알고리듬 풀이 at main · cyphen156/Workspace

Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.

github.com