내가 생각했을때 문제에서 원하는부분
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다.
이 단어는 적어도 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();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.