✨ Algorithm

[λ°±μ€€/C++] 4344번 : 평균은 λ„˜κ² μ§€

nitronium102 2021. 7. 8. 00:14

문제

λŒ€ν•™μƒ μƒˆλ‚΄κΈ°λ“€μ˜ 90%λŠ” μžμ‹ μ΄ λ°˜μ—μ„œ 평균은 λ„˜λŠ”λ‹€κ³  μƒκ°ν•œλ‹€. 당신은 κ·Έλ“€μ—κ²Œ μŠ¬ν”ˆ μ§„싀을 μ•Œλ €μ€˜μ•Ό ν•œλ‹€.

μž…λ ₯

첫째 μ€„μ—λŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€μ˜ 개수 Cκ°€ 주어진닀.

λ‘˜μ§Έ 쀄뢀터 각 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ§ˆλ‹€ ν•™μƒμ˜ 수 N(1 ≤ N ≤ 1000, N은 μ •μˆ˜)이 첫 수둜 주어지고, μ΄μ–΄μ„œ Nλͺ…μ˜ μ μˆ˜κ°€ 주어진닀. μ μˆ˜λŠ” 0보닀 ν¬κ±°λ‚˜ κ°™κ³ , 100보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜μ΄λ‹€.

좜λ ₯

각 μΌ€μ΄μŠ€λ§ˆλ‹€ ν•œ 쀄씩 평균을 λ„˜λŠ” ν•™μƒλ“€μ˜ λΉ„μœ¨μ„ λ°˜μ˜¬λ¦Όν•˜μ—¬ μ†Œμˆ˜μ  μ…‹μ§Έ μžλ¦¬κΉŒμ§€ 좜λ ₯ν•œλ‹€.

풀이

- λ°°μ—΄μ˜ 크기λ₯Ό 1000으둜 μ„ μ–Έ

- μ†Œμˆ˜μ  자리의 경우 cout << fixed와 cout.precision을 μ΄μš©ν•˜μ—¬ μ†Œμˆ˜μ  자리의 길이λ₯Ό κ³ μ •ν•œλ‹€.

- μžλ£Œν˜•μ— 주의! μ΄μƒν•˜κ²Œ 자꾸 ν‹€λ Έλ‹€κ³  ν•΄μ„œ μ°Ύμ•„λ΄€λŠ”λ° result = (double)num/n*100μ—μ„œ double둜 μ•ˆ κ³ μ³μ€˜μ„œ result값에 μ •μˆ˜ λ‚˜λˆ„κΈ°κ°€ λ“€μ–΄κ°„ 것이닀.

#include <iostream>
using namespace std;

int main()
{
    int c, n, num = 0;
    double result, avg = 0;
    int score[1000] = {0};
    cin >> c; // ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€ 개수

    for (int i = 0; i < c; i++)
    {
        cin >> n; // ν•™μƒμ˜ 수
        // Nλͺ…μ˜ 점수 λ°›κΈ°
        for (int j = 0; j < n; j++)
        {
            cin >> score[j];
            avg += score[j];
        }
        avg = avg / n;
        // 평균을 λ„˜λŠ” 학생듀 λΉ„μœ¨ 반올림
        for (int j = 0; j < n; j++)
        {
            if (score[j] > avg)
                num++;
        }
        result = (double)num / n * 100;
        cout << fixed;
        cout.precision(3);
        cout << result << "%" << endl;

        avg = 0;
        num = 0;
    }
}

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 λ„˜κ² μ§€

λŒ€ν•™μƒ μƒˆλ‚΄κΈ°λ“€μ˜ 90%λŠ” μžμ‹ μ΄ λ°˜μ—μ„œ 평균은 λ„˜λŠ”λ‹€κ³  μƒκ°ν•œλ‹€. 당신은 κ·Έλ“€μ—κ²Œ μŠ¬ν”ˆ μ§„싀을 μ•Œλ €μ€˜μ•Ό ν•œλ‹€.

www.acmicpc.net


λ‚˜λˆ—μ…ˆ μ—°μ‚°μž(/')λŠ” 두 가지 "λͺ¨λ“œ(mode)"λ₯Ό 가지고 μžˆλ‹€. λ§Œμ•½ 두 ν”Όμ—°μ‚°μž λͺ¨λ‘ μ •μˆ˜λΌλ©΄ / μ—°μ‚°μžλŠ” μ •μˆ˜ λ‚˜λˆ„κΈ°λ₯Ό μˆ˜ν–‰ν•œλ‹€. μ •μˆ˜μ˜ λͺ¨λ“  μ†Œμˆ˜μ μ€ μ‚­μ œν•˜κ³  μ •μˆ˜ 값을 λ°˜ν™˜ν•œλ‹€. (Ex. 7 / 4 = 1)

두 ν”Όμ—°μ‚°μž 쀑 ν•˜λ‚˜ 이상이 뢀동 μ†Œμˆ˜μ  숫자면 / μ—°μ‚°μžλŠ” 뢀동 μ†Œμˆ˜μ  λ‚˜λˆ„κΈ°λ₯Ό μˆ˜ν–‰ν•œλ‹€. (Ex. 7.0/3=2.333, 7/3.0=2.333, 7.0/3.0=2.333)


좜처: https://boycoding.tistory.com/158 [μ†Œλ…„μ½”λ”©]