๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm

[๋ฐฑ์ค€/C++] 1546๋ฒˆ : ํ‰๊ท 

by nitronium102 2021. 7. 7.

๋ฌธ์ œ

์„ธ์ค€์ด๋Š” ๊ธฐ๋ง๊ณ ์‚ฌ๋ฅผ ๋ง์ณค๋‹ค. ์„ธ์ค€์ด๋Š” ์ ์ˆ˜๋ฅผ ์กฐ์ž‘ํ•ด์„œ ์ง‘์— ๊ฐ€์ ธ๊ฐ€๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ผ๋‹จ ์„ธ์ค€์ด๋Š” ์ž๊ธฐ ์ ์ˆ˜ ์ค‘์— ์ตœ๋Œ“๊ฐ’์„ ๊ณจ๋ž๋‹ค. ์ด ๊ฐ’์„ M์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜์„œ ๋ชจ๋“  ์ ์ˆ˜๋ฅผ ์ ์ˆ˜/M*100์œผ๋กœ ๊ณ ์ณค๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์„ธ์ค€์ด์˜ ์ตœ๊ณ ์ ์ด 70์ด๊ณ , ์ˆ˜ํ•™์ ์ˆ˜๊ฐ€ 50์ด์—ˆ์œผ๋ฉด ์ˆ˜ํ•™์ ์ˆ˜๋Š” 50/70*100์ด ๋˜์–ด 71.43์ ์ด ๋œ๋‹ค.

์„ธ์ค€์ด์˜ ์„ฑ์ ์„ ์œ„์˜ ๋ฐฉ๋ฒ•๋Œ€๋กœ ์ƒˆ๋กœ ๊ณ„์‚ฐํ–ˆ์„ ๋•Œ, ์ƒˆ๋กœ์šด ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์‹œํ—˜ ๋ณธ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 1000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋‘˜์งธ ์ค„์— ์„ธ์ค€์ด์˜ ํ˜„์žฌ ์„ฑ์ ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๊ณ , ์ ์–ด๋„ ํ•˜๋‚˜์˜ ๊ฐ’์€ 0๋ณด๋‹ค ํฌ๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ƒˆ๋กœ์šด ํ‰๊ท ์„ ์ถœ๋ ฅํ•œ๋‹ค. ์‹ค์ œ ์ •๋‹ต๊ณผ ์ถœ๋ ฅ๊ฐ’์˜ ์ ˆ๋Œ€์˜ค์ฐจ ๋˜๋Š” ์ƒ๋Œ€์˜ค์ฐจ๊ฐ€ 10-2 ์ดํ•˜์ด๋ฉด ์ •๋‹ต์ด๋‹ค.

(10-2 ์ดํ•˜์˜ ์˜ค์ฐจ๋ฅผ ํ—ˆ์šฉํ•œ๋‹ค๋Š” ๋ง์€ ์ •ํ™•ํžˆ ์†Œ์ˆ˜ 2๋ฒˆ์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•˜๋ผ๋Š” ๋œป์ด ์•„๋‹ˆ๋‹ค.)

ํ’€์ด

01. ๊ณผ๋ชฉ ๊ฐœ์ˆ˜๊ฐ€ 1000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค -> ๋ฐฐ์—ด์˜ ์ตœ๋Œ€ index๋ฅผ 1000์œผ๋กœ ์žก์•„์•ผ ํ•œ๋‹ค.

02. ํ˜„์žฌ ์„ฑ์ ์ด 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๋ฉฐ, ์ ์–ด๋„ ํ•˜๋‚˜์˜ ๊ฐ’์€ 0๋ณด๋‹ค ํฌ๋‹ค -> max ์ดˆ๊ธฐ๊ฐ’ 0

+ ๊ณผ๋ชฉ ์ˆ˜ N์„ ์ œ์™ธํ•˜๊ณ  ์ „๋ถ€ ์‹ค์ˆ˜ํ˜•์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ๊ณ„์‚ฐ์‹œ์— ํ˜•๋ณ€ํ™˜์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค. 

03. ์‹ค์ œ ์„ฑ์ ๊ณผ ์ถœ๋ ฅ๊ฐ’์˜ ์ ˆ๋Œ€์˜ค์ฐจ ๋˜๋Š” ์ƒ๋Œ€ ์˜ค์ฐจ๊ฐ€ 10-2 ์ดํ•˜ -> ์‚ฌ์‹ค ์ด๊ฑด ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ํ’€์ด๋ณด๋‹ˆ๊นŒ precision์„ ์‚ฌ์šฉํ•ด์„œ ์†Œ์ˆ˜์  2์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ๋˜๊ฒŒ ํ•ด๋†จ๋˜๋ฐ ์˜ˆ์ œ ๋ณด๋ฉด ์†Œ์ˆ˜์  2์ž๋ฆฌ๋กœ ์ถœ๋ ฅ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ๋„ ์žˆ์–ด์„œ...

#include <iostream>
using namespace std;

int main() {
    int num;
    int max = 0;
    double avg = 0;
    cin >> num;
    
    int score[num];
    
    for (int i = 0; i<num; i++){
        cin >> score[i];
        if (max < score[i])
            max = score[i];
        avg += score[i];
    }
    
    avg = (avg / max * 100)/num;
    cout << avg << endl;
    return 0;
}

fixed์™€ precision์œผ๋กœ ๊ณ ์ •์‹œํ‚จ ๋ฒ„์ „

#include <iostream>
using namespace std;

int main()
{
    int num;
    double max = 0;
    double avg = 0;
    cin >> num;

    int score[1000];

    for (int i = 0; i < num; i++)
    {
        cin >> score[i];
        if (max < score[i])
            max = score[i];
        avg += score[i];
    }

    avg = (avg / max * 100) / num;
    cout << fixed;
    cout.precision(2);
    cout << avg << endl;
    return 0;
}

 

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

 

1546๋ฒˆ: ํ‰๊ท 

์ฒซ์งธ ์ค„์— ์‹œํ—˜ ๋ณธ ๊ณผ๋ชฉ์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 1000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋‘˜์งธ ์ค„์— ์„ธ์ค€์ด์˜ ํ˜„์žฌ ์„ฑ์ ์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์Œ์ด ์•„๋‹Œ ์ •์ˆ˜์ด๊ณ , ์ ์–ด๋„ ํ•˜๋‚˜์˜ ๊ฐ’์€ 0๋ณด

www.acmicpc.net


cout << fixed : ์†Œ์ˆ˜์ ์„ ๊ณ ์ •์‹œ์ผœ ํ‘œํ˜„(๊ณ ์ • ์—ฌ๋ถ€)

-> ํ•ด์ œ๋Š” cout.unsetf(ios::fixed); 

cout.precision(n) : ์†Œ์ˆ˜์ ์„ n์ž๋ฆฌ๊นŒ์ง€ ํ‘œํ˜„. ๋ฒ„๋ฆฌ๋Š” ์ž๋ฆฌ๋Š” ๋ฐ˜์˜ฌ๋ฆผ์ด ๋œ๋‹ค.

-> ํ•ด์ œ๋Š” cout.setf(ios::fixed);

๋Œ“๊ธ€