๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ/๐Ÿ’œ ๋ฐฑ์ค€

[๋ฐฑ์ค€] C 13์ผ์ฐจ (ํ‰๊ท ์€ ๋„˜๊ฒ ์ง€ #4344๋ฒˆ)

by eyes from es 2022. 12. 15.
728x90
๋ฐ˜์‘ํ˜•

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

 

4344๋ฒˆ: ํ‰๊ท ์€ ๋„˜๊ฒ ์ง€

๋Œ€ํ•™์ƒ ์ƒˆ๋‚ด๊ธฐ๋“ค์˜ 90%๋Š” ์ž์‹ ์ด ๋ฐ˜์—์„œ ํ‰๊ท ์€ ๋„˜๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์—๊ฒŒ ์Šฌํ”ˆ ์ง„์‹ค์„ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

๋Œ€ํ•™์ƒ ์ƒˆ๋‚ด๊ธฐ๋“ค์˜ 90%๋Š” ์ž์‹ ์ด ๋ฐ˜์—์„œ ํ‰๊ท ์€ ๋„˜๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋“ค์—๊ฒŒ ์Šฌํ”ˆ ์ง„์‹ค์„ ์•Œ๋ ค์ค˜์•ผ ํ•œ๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ํ•™์ƒ์˜ ์ˆ˜ N(1 ≤ N ≤ 1000, N์€ ์ •์ˆ˜)์ด ์ฒซ ์ˆ˜๋กœ ์ฃผ์–ด์ง€๊ณ , ์ด์–ด์„œ N๋ช…์˜ ์ ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ ์ˆ˜๋Š” 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

๊ฐ ์ผ€์ด์Šค๋งˆ๋‹ค ํ•œ ์ค„์”ฉ ํ‰๊ท ์„ ๋„˜๋Š” ํ•™์ƒ๋“ค์˜ ๋น„์œจ์„ ๋ฐ˜์˜ฌ๋ฆผํ•˜์—ฌ ์†Œ์ˆ˜์  ์…‹์งธ ์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋ฌธ์ œ ํ’€์ด

  1. test case ๋งŒํผ scanf๋ฅผ ๋ฐ›๋Š”๋ฐ, ์ œ์ผ ๋จผ์ € ๋ฐ›๋Š” ์ˆซ์ž๋ฅผ ํ•™์ƒ์ˆ˜ std์— ๋„ฃ๊ธฐ
  2. std๋งŒํผ int ๋ฐฐ์—ด ์„ ์–ธํ•˜๊ณ  sum์— ์ˆซ์ž ๋„ฃ๊ธฐ
  3. ํ‰๊ท ์„ ๊ตฌํ•˜๊ณ , ์ˆซ์ž๋ฐฐ์—ด์„ for๋ฌธ์œผ๋กœ ๋‹ค์‹œ ํ›‘์œผ๋ฉด์„œ ํ‰๊ท  ๊ตฌํ•˜๊ธฐ
  4. ์†Œ์ˆ˜ ์…‹์งธ์ž๋ฆฌ๊นŒ์ง€ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด 0.3lf
  5. %๋ฅผ ํ•˜๋‚˜ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”  %%๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค.
  6. cnt/std *100์„ ํ•˜๋ฉด cnt์™€ std๊ฐ€ int์ด๋ฏ€๋กœ ์•ž์— double๋กœ ํƒ€์ž…๋ณ€ํ™˜์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. (์•ˆ๊ทธ๋Ÿฌ๋ฉด ์˜ค๋ฅ˜๋‚จ)

 

๐Ÿ’ก %์ถœ๋ ฅํ•˜๊ธฐ ์ฐธ๊ณ 

http://mwultong.blogspot.com/2006/11/c-printf-print-percent-sign.html

 

C์–ธ์–ด] printf ํ•จ์ˆ˜์—์„œ, ํผ์„ผํŠธ ๊ธฐํ˜ธ(๏ผ…) ์ถœ๋ ฅ ๋ฐฉ๋ฒ•; Print Percent Sign

 

mwultong.blogspot.com

 

C code

#include <math.h>
#include <stdio.h>

int main()
{
    int c; //test case
    int std; //student number
    int cnt; //higher score than mean 
    int sum; //sume
    double avg; //avg

    scanf("%d",&c);
    
    for(int i=0; i<c; i++){
        cnt =0;
        sum =0;
        avg = 0.0;
        
        scanf("%d",&std);
        
        int score[std];
        
        for(int j=0; j<std; j++){
            scanf("%d",&score[j]);
            sum += score[j];
        }
        
        avg = sum/std;
        
        for(int k=0; k<std; k++){
            if(avg < score[k]){
                cnt++;
            }
        }
        printf("%0.3lf%%\n",((double)cnt/std)*100 );
    }
    
    return 0;
}

 

๊ฒฐ๊ณผ

728x90
๋ฐ˜์‘ํ˜•