본문 바로가기

Algorithm/Inflearn

[Inflearn] 자바 알고리즘 문제풀이 #01-07 7. 회문 문자열

문제

설명

앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.

문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.

단 회문을 검사할 때 대소문자를 구분하지 않습니다.

 

입력 

첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.

 

출력 

첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.

 

 

 

코드
import java.util.Scanner;

public class Main1_7 {
    public String Solution(String str) {
        String answer = "NO";
        String revStr = new StringBuilder(str).reverse().toString();
        if(revStr.equalsIgnoreCase(str)) answer = "YES";
        return answer;
    }

    public static void main(String[] args) {
        Main1_7 T = new Main1_7();
        Scanner sc = new Scanner(System.in);
        String str = sc.next();
        System.out.println(T.Solution(str));
    }
}

 

 

 

결과

 

 

 

 

알게된 점

1. StringBuilder reverse()

https://rookie-programmer.tistory.com/14

 

[JAVA] 자바 StringBuilder 주요 메소드

설명 자바에서 String 객체는 변경이 불가능하다. String str = "ABC"; str += "DEF"; 따라서 위의 코드를 실행했을 때, 기존 ABC를 갖고 있던 공간에 DEF를 붙이는 것이 불가능하다. (ABC라고 정해둔 문자열을

rookie-programmer.tistory.com

 

2. String equalsIgnoreCase()

https://rookie-programmer.tistory.com/18

 

[JAVA] 자바 String 클래스 주요 메소드

설명 String 클래스가 가지고 있는 (지원하는) 메소드들을 정리했다. 주요 메소드 append() : StringBuffer나 StringBuilder 객체 끝에 문자열을 붙인다. String은 + 연산자 혹은 concat() 함수를 이용해 이어 붙..

rookie-programmer.tistory.com