>>문제 바로가기<<
문자열을 입력받고, 그 문자열을 뒤집어도 뒤집기 전과 같냐를 묻는 문제이다.
때문에 String 자료형 간의 같다는 수식을 어떻게 표현할지 알아야한다.
String s1 = "apple"
String s2 = "apple"
String s3 = new String("apple");
위 코드에서, s1과 s2는 문자열 리터럴로 선언하여 같은 주소를 참조하고,
s3는 개별적인 주소를 참조하도록 새로 만들었다.
즉 s1,s2와 s3는 같은 값이지만 다른 주소를 가리킨다.
(문자열 리터럴 : 코드에 직접 쓰인 값)
System.out.println(s1 == s2); // true 반환
System.out.println(s1 == s3); // false 반환
System.out.println(s1.equals(s3)); // true 반환
"==" 연산자는 서로의 주소값을 비교하고,
String.equals() 메소드는 서로의 문자열 내용을 비교한다.
위 내용을 바탕으로 설계한 코드는 아래와 같다.
import java.util.*;
import java.io.*;
class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
StringBuilder sb = new StringBuilder(s).reverse();
if(s.equals(String.valueOf(sb))){
System.out.println("1");
}
else{
System.out.println("0");
}
}
}
맞았습니다!!