Menu
Coddy logo textTech

요약 - HashSet

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

challenge icon

챌린지

쉬움

세 개의 인자를 받는 processHashSet이라는 메서드를 작성하세요:

  1. HashSet<Object> (set)
  2. 처리할 Object (input)
  3. 수행할 작업을 지정하는 String (operation)

if/else 문과 이미 배운 HashSet 메서드들을 사용하여, 이 메서드는 operation에 따라 다음과 같이 String을 반환해야 합니다:

  • "add": input을 세트에 추가합니다. 추가되었으면 "Added successfully"를, 이미 세트에 존재하면 "Element already exists"를 반환합니다.
  • "remove": 세트에서 input을 제거합니다. 제거되었으면 "Removed successfully"를, 세트에 없으면 "Element not found"를 반환합니다.
  • "find": 세트에 input이 포함되어 있으면 "Found at index: [index]"를 반환하고(여기서 [index]는 순회 순서상 해당 요소의 위치), 그렇지 않으면 "Element not found"를 반환합니다.
  • "count": "Number of integers: [count]"를 반환합니다. 여기서 [count]는 세트에 있는 정수의 개수입니다.

먼저 입력값을 검증하세요:

  • setnull인 경우: "Invalid set"을 반환합니다.
  • operationnull이거나 위 네 가지 중 하나가 아닌 경우: "Invalid operation"을 반환합니다.
  • "find" 작업에서 inputnull인 경우: "Cannot find null"을 반환합니다.

직접 해보기

import java.util.HashSet;
import java.util.Scanner;
import java.util.Arrays;

public class Main {
    public static String processHashSet(HashSet<Object> set, Object input, String operation) {
        // 여기에 코드를 작성하세요
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        // 초기 집합 읽기
        String[] items = scanner.nextLine().split(",");
        HashSet<Object> set = new HashSet<>();
        if (!items[0].equals("empty")) {
            for (String item : items) {
                // 먼저 정수로 파싱 시도
                try {
                    set.add(Integer.parseInt(item));
                } catch (NumberFormatException e) {
                    set.add(item);
                }
            }
        }
        
        // 입력 읽기
        String inputStr = scanner.nextLine();
        Object input;
        try {
            input = Integer.parseInt(inputStr);
        } catch (NumberFormatException e) {
            input = inputStr;
        }
        
        // 연산 읽기
        String operation = scanner.nextLine();
        
        System.out.println(processHashSet(set, input, operation));
    }
}

논리와 흐름의 모든 레슨