
단순히 앞에서 읽던 뒤에서 읽던 같은 단어가 완성되면 팰린드롬이라고 하는데 그 여부를 판단하는 문제
파이썬이라면 Reverse로 딸각 해결이 되지만 자바로는 역시가 처음보는 기술들이 많이 보인다.
package 문자열;
import java.io.*;
import java.lang.*;
public class BOJ_10988_팰린드롬인지확인하기 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String words = br.readLine();
//String [] word_list (x) = br.readLine(" "); 같은 형식이어야 함
StringBuffer words_2 = new StringBuffer(words);
String reverse_words = words_2.reverse().toString();
if (words.equals(reverse_words)) {
System.out.println("1");
} else {
System.out.println("0");
}
}
}
if (words_2.equals(reverse_words)) {
이렇게 작성했었다. 오류가 발생하였는데,이유는
words_2 는 StringBuffer 객체이고
reverse_words는 String 객체이기 때문이다.
equals()함수는 객체 타입까지 비교하기때문에 이 경우에는 팰린드롬이여도 무조건 false가 출력이 되기때문에 주의해야 한다.