공부하기/백준

[Java] 백준 풀기 2789 - 유학 금

XEV 2023. 12. 9. 23:37

자바 백준 2789번

브론즈 2

https://www.acmicpc.net/problem/2789

 

2789번: 유학 금지

아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만,

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현, 문자열

 

 

 

 

 

코드 보기

import java.util.Scanner;
import java.util.Set;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 사용자로부터 단어 입력 받기
        String word = sc.nextLine();
        
        // 단어를 검열하여 결과 출력
        String censoredWord = censorWord(word);
        
        System.out.println(censoredWord);
    }
    
    // 단어를 검열하는 함수
    public static String censorWord(String word) {
        // HashSet을 사용하여 검열할 알파벳들을 저장
        Set<Character> censoredAlphabets = new HashSet<>();
        String censoredLetters = "CAMBRIDGE";
        
        // censoredLetters의 각 알파벳을 HashSet에 추가
        for (char c : censoredLetters.toCharArray()) {
            censoredAlphabets.add(c);
        }
        
        // 검열된 결과를 저장할 StringBuilder 생성
        StringBuilder result = new StringBuilder();
        
        // 단어의 각 문자를 확인하여 검열할 알파벳인지 검사하고 결과에 추가
        for (char c : word.toCharArray()) {
            // HashSet을 사용하여 상수 시간(O(1))에 해당 알파벳이 검열할 알파벳 집합에 포함되어 있는지 확인
            if (!censoredAlphabets.contains(c)) {
                // 검열할 알파벳이 아닌 경우 결과에 추가
                result.append(c);
            }
        }
        
        // 최종 검열된 결과를 문자열로 반환
        return result.toString();
    }
}