https://www.acmicpc.net/problem/25206
package user;
import java.util.*;
public class Q25206 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String st = "";
ArrayList<String[]> li = new ArrayList<>(); // <> 안에 어레이리스트 안에 들어갈 자료형태를 적어주면됨
double sum = 0;
double ans = 0;
double creditSum = 0;
for(int i=0;i<20;i++) {
st = sc.nextLine();
li.add(st.split(" ")); // 스플릿한 결과 스트링배열을 그대로 li에 넣는다 그리고 참조방법은 Arrays.toString
}
for (int i=0;i<li.size();i++) {
String grade = li.get(i)[2];
double credit = Double.parseDouble(li.get(i)[1]); // 어레이리스트의 스트링배열안의 스트링값을 더블형으로 변환
if (!grade.equals("P")) { // 문자열 값비교는 .equals 주소비교는 ==
switch (grade){
case "A+":
sum += credit * 4.5;
creditSum+=credit;
break;
case "A0":
sum += credit * 4.0;
creditSum+=credit;
break;
case "B+":
sum += credit * 3.5;
creditSum+=credit;
break;
case "B0":
sum += credit * 3.0;
creditSum+=credit;
break;
case "C+":
sum += credit *2.5;
creditSum+=credit;
break;
case "C0":
sum += credit * 2.0;
creditSum+=credit;
break;
case "D+":
sum += credit * 1.5;
creditSum+=credit;
break;
case "D0":
sum += credit * 1.0;
creditSum+=credit;
break;
case "F":
sum += credit * 0;
creditSum+=credit;
break;
}
}
}
ans = sum / creditSum ;
System.out.println(ans) ; // 스트링배열 값 받아올땐 Arrays.toString , 배열을 참조후 배열의 하위인덱스참조는 그냥.get(0)[1]
sc.close();
}
}
String[] A 배열 {1,2,3} 전체 참조시에는 Arrays.toString() 사용
하지만 인덱스참조시에는 A.get(0)[idx] 로참조
스트링변수 값 일치여부확인은 .equals() , !name.equals() 주소값 비교는 ' == '
'Java' 카테고리의 다른 글
[Backjoon] 13699번 점화식 JAVA (0) | 2024.09.20 |
---|---|
[BackJoon] 문자열집합 자바 14425번 실버 (1) | 2024.09.14 |
[Backjoon] 거스름돈문제 14916번 JAVA 실버 (0) | 2024.09.12 |
[백준7568] - 덩치 JAVA 실버5 (0) | 2024.09.11 |
프로그래머스 자바 입문 강의 수료 후기 (3) | 2024.09.11 |