본문 바로가기
Java

[Backjoon] 너의 평점은 25206번 JAVA 실버

by Runningturtle 2024. 9. 12.

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()  주소값 비교는 ' == '