HashMap
은 Key-Value(키-값) 쌍으로 데이터를 저장하는 자료이다.
Java에서 java.util.HashMap
클래스를 사용하면 쉽게 활용할 수 있다.
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
// 1. HashMap 생성 (Key: String, Value: Integer)
HashMap<String, Integer> map = new HashMap<>();
// 2. 데이터 추가 (put)
map.put("Apple", 1000);
map.put("Banana", 500);
map.put("Cherry", 2000);
// 3. 데이터 조회 (get)
System.out.println("Apple의 가격: " + map.get("Apple")); // 1000 출력
// 4. 데이터 삭제 (remove)
map.remove("Banana");
// 5. 데이터 확인 (containsKey)
if (map.containsKey("Cherry")) {
System.out.println("체리가 있습니다!");
}
// 6. 모든 Key-Value 출력 (반복문)
for (String key : map.keySet()) {
System.out.println(key + " : " + map.get(key));
}
}
}
링크: https://www.acmicpc.net/problem/25206
GPA = ∑(학점×평점) / ∑학점
import java.util.Scanner;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
HashMap<String, Double> gradeMap = new HashMap<>();
// 평점 데이터 맵에 저장
gradeMap.put("A+", 4.5);
gradeMap.put("A0", 4.0);
gradeMap.put("B+", 3.5);
gradeMap.put("B0", 3.0);
gradeMap.put("C+", 2.5);
gradeMap.put("C0", 2.0);
gradeMap.put("D+", 1.5);
gradeMap.put("D0", 1.0);
gradeMap.put("F", 0.0);
double totalScore = 0; // (학점 * 평점) 합산
double totalCredit = 0; // 전체 학점 합산
for (int i = 0; i < 20; i++) {
String subject = scan.next(); // 과목명 (사용하지 않음)
double credit = scan.nextDouble(); // 학점
String grade = scan.next(); // 등급
// "P" 학점은 계산 제외
if (grade.equals("P")) {
continue;
}
// 학점 * 평점을 누적
totalScore += credit * gradeMap.get(grade);
totalCredit += credit;
}
// GPA 계산 및 출력
double gpa = totalScore / totalCredit;
System.out.printf("%.6f", gpa); // 소수점 6자리까지 출력
}
}
System.out.printf()
는 %.6f
와 같은 형식 지정 출력(formatting)을 지원System.out.print(String.format())
을 사용하여 형식 지정 출력을 할 수 있음