Algorithm

[자바 알고리즘 문제풀이] String 08. 유효한 팰린드룸

민뭉아치 2022. 3. 7. 01:02

String(스트링) 08. 유요한 팰린드룸


* 사용 언어 : JAVA

* Inflearn의 자바(Java)알고리즘 문제풀이 : 코딩테스트 대비 강의내용 정리

 

1. 문제

앞 뒤로 읽을 때 같은 문자열인 팰린드룸을 받으면 YES, 아니면 NO를 출력하기
단, 알파벳 이외에 문자는 무시하고 대소문자를 구분하지 않음
// 입력
found7, time: study; Yduts; emit, 7Dnuof

// 출력
YES

 

2. 풀이

먼저 주어진 문자열을 toUppeCase() 메서드를 사용하여 모두 대문자로 변경하고 replaceAll() 메서드로 정규식을 사용하여 대문자가 아닌경우 빈 문자로 대체한다.  

모든 특수문자가 제거된 문자열을 StringBuilder의 reverse() 메서드로 뒤집어서 비교해준다.

 

 

3. 코드 


public class Main {	
	public String solution(String str){
		String answer="NO";
		str=str.toUpperCase().replaceAll("[^A-Z]", "");
		String tmp=new StringBuilder(str).reverse().toString();
		if(str.equals(tmp)) 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.print(T.solution(str));
	}
}

 

 

4. Keword

  • String
    • replaceAll()

 

https://regexr.com/

 

RegExr: Learn, Build, & Test RegEx

RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).

regexr.com