CS/BaekJoon

[BaekJoon] 백준 25206번 너의 평점은 - Java

Bell91 2024. 2. 23. 15:52
반응형

🎈문제

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

 

💬설명

  • 학점별로 점수를 리턴해주는 메서드를 따로 만들자
  • "P"학점은 점수에 포함시키지 않도록 한다

 

⌨️ CODE

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

public class Main {

	public static void main(String[] args) throws IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		double totalEven = 0;
		double totalScore = 0;
		
		ArrayList<String[]> arrList = new ArrayList<>();
		String[] arr = new String[3]; 
				
		for(int i = 0 ; i < 20 ; i ++) {
			arr = br.readLine().split(" ");		
			arrList.add(arr);
		}
		
		for(int i = 0 ; i < arrList.size() ; i++ ){
			String arr2 = arrList.get(i)[1];
			String arr3 = arrList.get(i)[2];
			
			if(arr3.equals("P")) {
				continue;
			}
			totalEven = totalEven + Double.parseDouble(arr2)*num(arr3);
			totalScore = totalScore + Double.parseDouble(arr2);
		}
		
		System.out.print(totalEven/totalScore);

	}
	
	public static double num(String s) {
	    double score = 0;
	    switch(s) {
	        case "A+":
	            score = 4.5;
	            break;
	        case "A0":
	            score = 4.0;
	            break;
	        case "B+":
	            score = 3.5;
	            break;
	        case "B0":
	            score = 3.0;
	            break;
	        case "C+":
	            score = 2.5;
	            break;
	        case "C0":
	            score = 2.0;
	            break;
	        case "D+":
	            score = 1.5;
	            break;
	        case "D0":
	            score = 1.0;
	            break;
	        case "F":
	            score = 0.0;
	            break;
	        case "P":
	            score = 0.0;
	            break;
	        default:
	            score = 0.0;
	            break;
	    }
	    return score;
	}
}
반응형