
내가 생각했을때 문제에서 원하는부분
The input will consist of one word, all in uppercase letters, with no spaces.
The maximum length of the word will be 30 letters, and the word will have at least one letter in it.
Output YES if the input word can be used on the sign; otherwise, output NO
내가 이 문제를 보고 생각해본 부분
BufferedReader를 통해 단어를 입력받는다.
180도 회전해도 동일한 문자를 validLetters 문자열로 명시해둔다.
입력 단어의 각 문자를 하나씩 확인하며, indexOf() 메서드를 사용해 문자가 validLetters안에 포함되어 있는지 검사한다.
만약 어느 하나라도 포함되어 있지 않은 문자가 발견되면 "NO"를 출력하고 프로그램을 바로 종료한다.
반복문을 모두 통과하면 단어가 조건을 만족하므로 "YES"를 출력한다.
모든 처리가 끝나고 br.close()로 리소스도 안전하게 닫는다.
코드로 구현
package baekjoon.baekjoon_32;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
// 백준 6750번 문제
public class Main1292 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
String validLetters = "IOSHZXN";
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (validLetters.indexOf(c) == -1) { // 목록에 없으면 -1이 리턴됨
System.out.println("NO");
return;
}
}
System.out.println("YES");
br.close();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.