Shiny Sky Blue Star

백준 문제 풀이/백준 (JAVA)

JAVA 백준 25206 너의 평점은

gamja00 2024. 7. 1. 15:19


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

 

 

c언어와 같은 방식의 문제 풀이 코드

import java.util.Scanner;

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

        double result = 0.0, all = 0.0, n;
        String subject, temp;
        char grade[] = new char[2];

        int count = 20;

        for (int i = 0; i < count; i++) {
            subject = sc.next();
            n = sc.nextDouble();
            temp = sc.next();

            for (int j = 0; j < temp.length(); j++) {
                grade[j] = temp.charAt(j);
            }

            all += n;

            if (grade[0] == 'P') {
                all -= n;
            } else if (grade[0] == 'A') {
                if (grade[1] == '+') {
                    result += n * 4.5;
                } else {
                    result += n * 4.0;
                }
            } else if (grade[0] == 'B') {
                if (grade[1] == '+') {
                    result += n * 3.5;
                } else {
                    result += n * 3.0;
                }
            } else if (grade[0] == 'C') {
                if (grade[1] == '+') {
                    result += n * 2.5;
                } else {
                    result += n * 2.0;
                }
            } else if (grade[0] == 'D') {
                if (grade[1] == '+') {
                    result += n * 1.5;
                } else {
                    result += n * 1.0;
                }
            } else {
                result += n * 0.0;
            }
        }

        System.out.println(result / all);
    }
}

 

 

예전에 풀었던 방법과 다른 방법을 사용한 코드

import java.util.Scanner;

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

        double result = 0.0, all = 0.0, n;
        String subject, grade;
        int count = 20;

        for (int i = 0; i < count; i++) {
            subject = sc.next();
            n = sc.nextDouble();
            grade = sc.next();

            all += n;

            if (grade.compareTo("P") == 0) {
                all -= n;
            } else if (grade.compareTo("A+") == 0) {
                result += n * 4.5;
            } else if (grade.compareTo("A0") == 0) {
                result += n * 4.0;
            } else if (grade.compareTo("B+") == 0) {
                result += n * 3.5;
            } else if (grade.compareTo("B0") == 0) {
                result += n * 3.0;
            } else if (grade.compareTo("C+") == 0) {
                result += n * 2.5;
            } else if (grade.compareTo("C0") == 0) {
                result += n * 2.0;
            } else if (grade.compareTo("D+") == 0) {
                result += n * 1.5;
            } else if (grade.compareTo("D0") == 0) {
                result += n * 1.0;
            } else {
                result += n * 0.0;
            }
        }

        System.out.println(result/all);
    }
}