본문 바로가기
코딩연습

[코딩연습] 시험성적 평균과 등급 구하기 (구름-1단계)

by 마진 2021. 5. 3.

import java.io.*;
class Main {
	public static void main(String[] args) throws Exception {
    	BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input = br.readLine();

해당문제는 평소처럼 BufferedReader클래스를 활용하여 받은 데이터를 문자열 변수 input에 저장한 코드가 초기값으로 주어져 있습니다.

 

풀이과정

0. readline은 입력된 줄을 문자열로 return하는 함수.

    -> 입력된 점수는 공란 (스페이스)으로 구분되어 있음.

 

1. split() 메서드를 통해 문자열을 공란을 기준으로 쪼개어 배열에 저장.

    String[] arr = input.split(" ");

 

2. 점수 계산을 위해 정수형 배열 선언 및 arr의 요소를 형변환 시켜서 저장

   int[] arrInt = new int[arr.length];

   for(int i=0; i<arr.length; i++){

        arrInt[i] = Integer.parseInt(arr[i]);

   }

 

3. for문을 활용 - arrInt 의 요소합을 구한 뒤 평균을 구함.

 

4. switch-case문을 활용 - 점수에 따른 등급 설정

 

5. 평균과 등급 출력 (이때, printf() 사용)

 

---------------------------------------------------------------------------------------------------------------

소숫점 둘째자리까지 출력(셋쨰자리에서 반올림) 조건이 생각외로 까다로웠습니다.

Math.round()를 활용해서 처음 코드를 작성했을 때, 예시1은 문제없었으나,

100 100 100이 입력된 예시2의 경우 프로그램 실행값이 (100.00 A)가 아니라

(100.0 A)였기 때문에 까다로웠습니다. 

 

printf() 를 사용할 기회가 된 문제입니다.

---------------------------------------------------------------------------------------------------------------

String

    split(String regex) : Splits this string around matches of the given regular expression.

                              매개변수로 주어진 정규표현식에 따라 쪼개진 문자열의 배열을 반환합니다.

Math

    round(double a) : 소숫점 첫째자리 기준으로 반올림하는 메서드

 

 

<소스코드>

 

 

- 참고 -

seeminglyjs.tistory.com/244

 

[Java] 자바 소수점 반올림 / 버림 /제거 / 처리/자르는 방법 알아보기.

2021-01-31 double 형 타입의 변수를 사용하다 보면 자신의 필요에 따라 특정 소수점 자리를 제거해야 하는 경우가 있는데, 방법을 모를 경우 상당히 난감할 수가 있다. 따라서 오늘은 이와 같은 소수

seeminglyjs.tistory.com