본문 바로가기
Baekjoon 자바 코드/심화1

[백준] 25206번 너의 평점은 풀이 코드 (Java 자바)

by 망댕이 2024. 5. 17.
반응형

 

 

접근 방법)

split을 이용하면 금방 풀 수 있는 문제였다.

우선 주어진 문자열을 띄어쓰기를 기준으로 문자열을 자르고 앞 과목 이름은 사용하지 않고 학점과 점수를 가지고 문제를 풀어나가면 된다.

그리고 또 점수가 P인 과목일 경우는 점수 계산에서 제외해야 한다는 점도 기억하고 있어야 한다.

 


 

정답 코드 1)

import java.util.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        double score = 0; // 학점 X 과목 점수
        double count = 0; // 총 학점
        for(int i = 1; i <= 20; i++){
            String str = sc.nextLine();
            String[] s = str.split(" ");
            
            double a = Double.parseDouble(s[1]); // 학점 (String 형을 double 형으로 변환)
            double b = 0; // 점수
            if(s[2].equals("A+")){
                b = 4.5;
            }else if(s[2].equals("A0")){
                b = 4.0;
            }else if(s[2].equals("B+")){
                b = 3.5;
            }else if(s[2].equals("B0")){
                b = 3.0;
            }else if(s[2].equals("C+")){
                b = 2.5;
            }else if(s[2].equals("C0")){
                b = 2.0;
            }else if(s[2].equals("D+")){
                b = 1.5;
            }else if(s[2].equals("D0")){
                b = 1.0;
            }else if(s[2].equals("F")){
                b = 0.0;
            }else if(s[2].equals("P")){
                count = count - a;
            }
            score = score + (a*b);
            count = count + a;
        }
        System.out.println(score/count);
    }
}

 

for문을 이용하여 총 20번 String 문자열을 입력받고 split을 이용하여 띄어쓰기를 기준으로 문자열을 나눠 String [] 배열에 넣는다.

 

배열[0]은 과목이름, 배열[1]은 학점, 배열[2]는 점수가 된다.

그리고 배열 [2]를 if문을 통해 문자 비교한 후 문자에 해당하는 점수(double형)를 변수 b에 할당한다.

 

마지막으로 점수가 P일 경우는 b 초기값이 0이기 때문에 아무 점수가 포함되지 않을뿐더러 count - a를 하여 총 학점에도 포함되지 않도록 작성한다.

반응형