본문 바로가기

알고리즘/백준

[백준] 25206 - 너의 평점은 (JAVA/ 자바)

반응형

25206번 문제(1)
25206번 문제(2)
25206번 문제(3)

 

1. Scanner를 이용한 방법

import java.util.Scanner;

public class Main{
public static void main(String[] args){
    
        Scanner sc = new Scanner(System.in);

        String[] gradeList = {"A+", "A0", "B+", "B0","C+", "C0", "D+", "D0", "F"};
        Double[] scoreList = {4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0.0};

        Double sum = 0.0;
        Double gradeSum = 0.0;

        for(int i=0; i<20; i++){
            String subject = sc.next();
            Double score = sc.nextDouble();
            String grade = sc.next();

            for(int j=0; j<gradeList.length; j++){
                if(gradeList[j].equals(grade)){
                    sum += score * scoreList[j];
                    gradeSum += score;
                }
            }
        }
        System.out.println((float)(sum/gradeSum));
    }  
}

 

 

2.BufferedReader를 이용한 방법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main{
public static void main(String[] args)throws IOException{
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] gradeList = {"A+", "A0", "B+", "B0","C+", "C0", "D+", "D0", "F"};
        Double[] scoreList = {4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0.0};

        Double sum = 0.0;
        Double gradeSum = 0.0;

        for(int i=0; i<20; i++){
            StringTokenizer st = new StringTokenizer(br.readLine(), " ");
            String subject = st.nextToken();
            Double score = Double.parseDouble(st.nextToken());
            String grade = st.nextToken();

            for(int j=0; j<gradeList.length; j++){
                if(gradeList[j].equals(grade)){
                    sum += score * scoreList[j];
                    gradeSum += score;
                }
            }
        }
        System.out.println(sum/gradeSum);
    }  
}

P인 등급을 어떻게 배제해야하나 고민했는데 생각해보니 과목평점 목록에는 P가 없어서 equals()를 이용해서 풀면 되는 거였다.

반응형