본문 바로가기

건승하고있어요/알고리즘

[if] 평균은 넘겠지 / printf() 메소드 정리

반응형

문제: 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈  진실을 알려줘야 한다.

첫째줄에는 테스트 케이스 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 첫 수로 정수 N(1<=N<=100)명의 학생이 주어지고 그 다음으로 N명의 0부터 100 사이의 점수가 이어서 주어진다. 

(출처: https://www.acmicpc.net/problem/4344)


if문 문제가 아니라 for문 문제가 아니었나 싶은 문제.

for문 잘 받아서 점수 잘 올리면 된다. 

(남들보다 코드는 짧은데 그에비해 시간과 용량이 상당히 느리고 크다. 다른 방법은 뭐가 있을까여 왜 나는 남들보다 느리지)


여기서 내가 배울 것은 바로 출력

나는 항상 매번 출력하는 형식을 외우는게 귀찮아서 매번 찾아서 풀었는데 이제는 찾는게 더 귀찮은 것 같다.


따라서 ★정리★는 여기 -> printf()메소드 정리 


스프링만 하다가 오랜만에 알고리즘 푸니 재미있었다고 합니다. 풀 줄 아는 문제가 얼마 안 남아서 똥줄이 타들어가고 있지만.. 가끔 이렇게 하나씩 풀다보면 하나씩 늘어가겠지...


역시 이 문제도 마찬가지로 이클립스에서는 답이 나오는데 자꾸 채점에서는 틀렸다고 나왔다.

왜그런고 하니 바로

출력형식에 "\n" 줄바꿈 안해줘서...^^........

거지같은그 ㅇㅏ무튼 알고리즘 재미따


결과


ps. 주석을 안 달아서 미리 말하자면 pg는 평균, bj는 비중, good은 평균넘는 애들 

클래스 이름이 sadstory인 이유는 문제가 너무 슬퍼서 

...ㅋㅋㅋㅋ이해바람


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.util.Scanner;
 
public class SadStory {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int C = scan.nextInt(); //케이스 숫자
        int S = 0//학생숫자
        double score = 0;
        double pg = 0;
        double bj = 0;
        double good = 0;
        for(int i=0 ; i<C ; i++) {
             S = scan.nextInt();
             double scores [] = new double[S];
             for(int j=0 ; j<S ; j++) {
                 scores[j] = scan.nextDouble();//학생마다 점수 받음
                 score = score + scores[j];
             }
             //평균
             pg = score/S;
             System.out.println("평균: " + pg);
             for(int k=0 ; k<S ; k++) {
                 if(scores[k]>pg) { //학생이 평균을 넘을 때마다 카운트 늘리기
                     good++;
                 }
             }
             // 평균 점수를 넘는 아이들의 비중을 구해야해 =>평균점수 넘는 아이들의 숫자를 구해야해
             bj = (good/S)*100;
             System.out.printf("%.03f%%\n", bj);
             pg = 0;
             good = 0;
             bj = 0;
             score = 0;
        }
        scan.close();
    }
 
}
 
cs


반응형

'건승하고있어요 > 알고리즘' 카테고리의 다른 글

[1차배열] OX 퀴즈  (0) 2018.02.13
[if] 더하기 사이클  (3) 2018.02.12
[for] 2007년 달력문제  (0) 2018.02.08
[소수] 소수찾기  (5) 2018.02.07
[1차원배열] 숫자의 개수  (2) 2018.02.07