[백준] 10988번 - String.equals() (java)

팥빵·2025년 5월 26일

Baekjoon

목록 보기
15/49
post-thumbnail

>>문제 바로가기<<
문자열을 입력받고, 그 문자열을 뒤집어도 뒤집기 전과 같냐를 묻는 문제이다.

때문에 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");
        }
    }
}

맞았습니다!!

profile
반갑습니다

0개의 댓글