Menu
Coddy logo textTech

딕셔너리 수정하기

Coddy Java 여정의 논리와 흐름 섹션에 포함된 레슨 — 59개 중 14번째.

HashMap은 put(), remove(), replace() 메서드를 사용하여 항목을 삭제하고 업데이트하는 기능도 지원합니다.

예를 들어 먼저 HashMap을 채워보겠습니다:

HashMap<String, String> users = new HashMap<>();
users.put("alice", "Admin");
users.put("bob", "User");

키를 제거하려면:

users.remove("bob"); // "bob"을 제거합니다
System.out.println(users);
// {alice=Admin}

키를 업데이트하려면:

users.replace("alice", "Guest");
// alice를 Guest로 업데이트합니다

users.replace("Charlie", "Admin");
// 아무 작업도 수행하지 않습니다 ("Charlie" 키가 존재하지 않음)
challenge icon

챌린지

쉬움

특정 조건에 따라 주어진 HashMap을 수정하는 <strong>modifyMap</strong>이라는 메서드를 작성하세요.

  1. 다음과 같은 data라는 이름의 HashMap을 인자로 받습니다:
    • 키는 String 타입입니다.
    • 값은 Integer 타입입니다.
  2. String 타입의 key를 인자로 받습니다.
  3. Integer 타입의 newValue를 인자로 받습니다.

메서드는 다음 규칙에 따라 업데이트된 HashMap을 반환해야 합니다:

  • data키가 존재하고 newValue같은 값을 가지고 있다면, <strong>replace()</strong>를 사용하되 값을 1 증가시킵니다.
  • 키가 존재하지만 다른 값을 가지고 있다면, 해당 키를 삭제합니다.
  • 키가 존재하지 않는다면, <strong>newValue</strong>와 함께 추가합니다.

직접 해보기

// --- hashmap 문자열을 hashmap으로 변환하기 위한 모듈 ---
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
// -----------------------------
import java.util.HashMap;
import java.util.Scanner;

public class Main {
    public static HashMap<String, Integer> modifyMap(HashMap<String, Integer> data, String key, int newValue) {
        // 여기에 코드를 작성하세요
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String hashMapString = scanner.nextLine();
        String key = scanner.nextLine();
        int newValue = scanner.nextInt();

        // HashMap 문자열을 HashMap으로 변환
        Type mapType = new TypeToken<HashMap<String, Integer>>(){}.getType();
        HashMap<String, Integer> data = new Gson().fromJson(hashMapString, mapType);

        HashMap<String, Integer> result = modifyMap(data, key, newValue);
        System.out.println(new Gson().toJson(result));
    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨