본문 바로가기
백엔드개발자/알고리즘관련

팰린드롬, replaceAll(), equals, ==

by 보혀니 2021. 10. 12.

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

문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES",

아니면 "NO"를 출력하는 프로그램을 작성하세요.

단 회문을 검사할때 알파벳만 가지고 회문을 검사하며, 대소문자는 구분하지 않습니다.

알파벳 이외의 문자들은 무시합니다.

첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
   
첫번째 줄에 팰린드롬인지의 결과를 출력합니다.

 

import java.util.Scanner;

public class Main {

	public String solution(String str) {
		String answer = "NO";
//		여기서 실수 했음 [] 이거 안붙여줬음
		str = str.toUpperCase().replaceAll("[^A-Z]", "");
		String revStr = new StringBuilder(str).reverse().toString();
//		문자열 비교에 == 을 쓰다니... 이러지마
		System.out.println(revStr);
		
		if (str.equals(revStr)) {
			answer = "YES";
		}
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String str = kb.nextLine();

		System.out.println(T.solution(str));

	}

}

 

초록: 입력값

검정: 결과값

 

 

 

미흡했던 것

String revStr = new StringBuilder(str).reverse().toString();

이 부분 앞에서 배웠는데 아직 익숙치않다..

 

내일은 배운거 복습 해야겠다^__^