백준 유학 금지

KIMYEONGJUN·2024년 11월 21일
0
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다.
이 단어는 적어도 3글자이며,
많아야 100글자이다.

입력으로 주어진 단어를 정부가 검열을 하면 어떻게 변하는지를 출력한다.
즉, 단어에서 CAMBRIDGE에 포함된 알파벳을 모두 지운 뒤 출력한다.
항상 정답의 길이는 0보다 크다.

내가 이 문제를 보고 생각해본 부분

BufferedReader를 사용해서 입력을 받는다.
StringBuilder 문자열을 동적으로 생성하고 수정할 수 있는 객체이다.
검열 문자 정의:
이 문자열은 제거해야 할 문자들을 정의한다.
입력 문자열에서 이 문자들을 찾아서 삭제한다.
문자열 순회 및 검열:
input.toCharArray(): 입력 문자열을 문자 배열로 변환하여 각 문자를 순회할 수 있게 한다.
indexOf(ch): 특정 문자가 censorCharacters 문자열에 포함되어 있는지 확인한다.
포함되어 있지 않으면 -1을 반환하므로,
이 경우에만 StringBuilder에 문자를 추가한다.
sb.toString(): StringBuilder에 저장된 내용을 문자열로 변환하여 출력한다.
이 문제는 주어진 단어를 검사하여 "CAMBRIDGE"에 포함된 문자들을 제거한 후, 남은 문자를 출력한다.

코드로 구현

package baekjoon.baekjoon_24;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 백준 2789번 문제
public class Main844 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder(); // StringBuilder를 사용하여 결과 문자열을 생성
        String input = br.readLine();  // 입력된 단어

        // CAMBRIDGE에 포함된 알파벳
        String censorCharacters = "CAMBRIDGE";

        // 입력된 단어를 순회하며 CAMBRIDGE에 포함된 알파벳을 제외하고 추가
        for(char ch : input.toCharArray()) {
            if(censorCharacters.indexOf(ch) == -1) {  // 포함되지 않은 경우
                sb.append(ch);
            }
        }

        // 결과 출력
        System.out.println(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글