https://www.acmicpc.net/problem/25206
- 예제 입력1
ObjectOrientedProgramming1 3.0 A+
IntroductiontoComputerEngineering 3.0 A+
ObjectOrientedProgramming2 3.0 A0
CreativeComputerEngineeringDesign 3.0 A+
AssemblyLanguage 3.0 A+
InternetProgramming 3.0 B0
ApplicationProgramminginJava 3.0 A0
SystemProgramming 3.0 B0
OperatingSystem 3.0 B0
WirelessCommunicationsandNetworking 3.0 C+
LogicCircuits 3.0 B0
DataStructure 4.0 A+
MicroprocessorApplication 3.0 B+
EmbeddedSoftware 3.0 C0
ComputerSecurity 3.0 D+
Database 3.0 C+
Algorithm 3.0 B0
CapstoneDesigninCSE 3.0 B+
CompilerDesign 3.0 D0
ProblemSolving 4.0 P
- 예제 출력1
3.284483
- 예제 입력2
BruteForce 3.0 F
Greedy 1.0 F
DivideandConquer 2.0 F
DynamicProgramming 3.0 F
DepthFirstSearch 4.0 F
BreadthFirstSearch 3.0 F
ShortestPath 4.0 F
DisjointSet 2.0 F
MinimumSpanningTree 2.0 F
TopologicalSorting 1.0 F
LeastCommonAncestor 2.0 F
SegmentTree 4.0 F
EulerTourTechnique 3.0 F
StronglyConnectedComponent 2.0 F
BipartiteMatching 2.0 F
MaximumFlowProblem 3.0 F
SuffixArray 1.0 F
HeavyLightDecomposition 4.0 F
CentroidDecomposition 3.0 F
SplayTree 1.0 F
- 예제 출력2
0.000000
- 문제 접근
- 입력 ⇒ 20줄에 걸쳐 과목명 / 학점 / 등급이 주어짐
- 출력 ⇒ 전공 평점(학점 * 과목평점의 총 합 / 학점의 총합)
- 문제 해결
- 과목 평점을 Map으로 선언하여 저장
- 등급이 P인 경우 계산에서 제외
- 학점의 총합과 학점 * 과목 평점의 총합을 구해야 함
- 기존 풀이 [메모리 : 14312 KB / 시간 : 128 ms]
// 과목 평점
static Map<String, Double> subjectScore = Map.of("A+",4.5, "A0", 4.0, "B+", 3.5, "B0", 3.0, "C+", 2.5,
"C0", 2.0, "D+", 1.5, "D0", 1.0, "F", 0.0);
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
double totalCredit = 0; // 학점의 총합
double totalMajorScore = 0; // 전공 평점의 총합
for(int i = 0; i < 20; i++){
st = new StringTokenizer(br.readLine());
st.nextToken(); // 과목명 필요 없음
// 학점
double credit = Double.parseDouble(st.nextToken());
// 등급
String grade = st.nextToken();
// 등급이 P면 계산에서 제외
if(grade.equals("P")) continue;
totalCredit += credit;
totalMajorScore += credit * subjectScore.get(grade);
}
System.out.println(totalMajorScore / totalCredit);
}
'Coding Test > Problem Number' 카테고리의 다른 글
[Java] 스위치 켜고 끄기 [1244번] (0) | 2024.08.01 |
---|---|
[Java] 30 [10610번] (0) | 2024.07.31 |
[Java] 잃어버린 괄호 [1541번] (0) | 2024.07.31 |
[Java] 두라무리 휴지 [25178번] (0) | 2024.07.31 |
[Java] 바이러스 [2606번] (0) | 2024.07.29 |