개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (286)
    • Web Front End (75)
      • Javascript & Typescript (26)
      • React (12)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (7)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 회고
  • JavaScript
  • 자바스크립트
  • 릿코드
  • 개발자
  • 노마드북클럽
  • 오늘의회고
  • 노개북
  • 프론트엔드
  • TypeScript

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이
Problem Solved/BOJ

[BOJ][Java] 4344번 - 평균은 넘겠지

[BOJ][Java] 4344번 - 평균은 넘겠지
Problem Solved/BOJ

[BOJ][Java] 4344번 - 평균은 넘겠지

2019. 11. 2. 11:53
반응형

과연 그럴까요?

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

 

4344번: 평균은 넘겠지

문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자

www.acmicpc.net

문제

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

(문제가 이게 뭐얔ㅋㅋㅋㅋㅋㅋ)

문제 설명

평균을 넘는 학생의 비율을 구하는 문제.

 

1. StringTokenizer로 학생 수 알아낸 후 학생 수만큼 for문을 돌아 점수를 저장한다. 점수 저장하면서 sum에도 더해주면 평균도 같이 구할 수 있다.

2. 방금 저장한 배열을 활용해 역시 for문을 돌려 평균을 넘는 학생수를 cnt 변수를 활용해 구한다.

3. DecimalFormat이라는 라이브러리를 사용해 소수점 자리수를 정해준다.

1
DecimalFormat df = new DecimalFormat("0.000");
cs

3-1. String.format을 사용해 소수점 자리수를 정해줄 수도 있다.

1
bw.write(String.format("%.3f", (double)cnt / a * 100) + "%\n");
cs

성공 코드 

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
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.ArrayList;
import java.text.DecimalFormat;
 
public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader((System.in)));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter((System.out)));
        int c = Integer.parseInt(br.readLine()); // 테스트 케이스 개수
 
        for (int i = 0; i < c; i++) {
            int avg = 0, sum = 0, cnt = 0;
            ArrayList arr = new ArrayList();
            
            StringTokenizer st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken()); // 학생 수
            
            for (int j = 0; j < a; j++) { // 점수를 배열에 저장 + 합계,평균 계산
                int b = Integer.parseInt(st.nextToken());
                arr.add(b);
                sum += b; 
            }
            avg = sum / a;
            
            for (Object ob : arr) //평균을 넘는 학생 수
                if ((Integer)ob > avg) cnt++;
            
            DecimalFormat df = new DecimalFormat("0.000"); // 소수 셋째자리까지 출력
            bw.write(df.format((double)cnt / a * 100) + "%\n");
        }
        bw.flush(); bw.close();
    }
}
Colored by Color Scripter
cs

 

 

 

 

반응형
  • 문제
  • 문제 설명
  • 성공 코드 
'Problem Solved/BOJ' 카테고리의 다른 글
  • [BOJ][Java] 10809번 - 알파벳 찾기
  • [BOJ][Java] 11654번 - 아스키 코드
  • [BOJ][Java] 8958번 - OX퀴즈
  • [BOJ][Java] 3052번 - 나머지
개발후라이
개발후라이
어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.