1. 문제
팰린드롬 - 앞에서 읽을 때, 뒤에서 읽을 때 같은 문자열이 출력되는 것
문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성.
단, 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 X
알파벳 이외의 문자들의 무시할 것.
2. 예시
found7, time: study; Yduts; emit, 7Dnuof
-> YES
apple, egg
-> NO
3. 코드
import java.util.Scanner;
public class Case8 {
public String solution(String str){
String answer = "NO";
str = str.toUpperCase().replaceAll("[^A-Z]",""); // 대소문자 구분X
//예시 - found7, time: study; Yduts; emit, 7Dnuof
System.out.println(str); // FOUNDTIMESTUDYYDUTSEMITDNUOF
String tmp = new StringBuilder(str).reverse().toString(); // 문자열 뒤집기
System.out.println(tmp); // FOUNDTIMESTUDYYDUTSEMITDNUOF
if(str.equals(tmp)) answer="YES";
return answer;
}
public static void main(String[] args) {
Case8 case8 = new Case8();
Scanner in = new Scanner(System.in);
String str = in.nextLine();
System.out.println(case8.solution(str));
}
}
- 이번 문제는 회문 검사시, 알파벳으로만 검사하고 대소문자 구분을 하지 않는다.
- [^A-Z] -> 정규식 표현으로 알파벳 이외의 문자들은 무시하기 위해 넣은 것
- replaceAll은 (= [^A-Z] A~Z 이외의 문자) 들은 ""으로 치환. (위 예시 참조)
- 치환된 문자열과 StringBuilder의 reverse를 이용해 문자열은 뒤집은 것과 비교했을 때 같으면 'YES'
- 다르면 'NO' 를 리턴한다.
4. 마무리
정규표현식 출처 - https://sooftware.io/regex/
정규표현식 (regex)
정규 표현식 정규표현식(regular expression)은 일종의 문자를 표현하는 공식으로, 특정 규칙이 있는 문자열 집합을 추출할 때 자주 사용되는 기법입니다. 주로 Prograaming Language나 Text Editor…
sooftware.io
'알고리즘(Algorithm)' 카테고리의 다른 글
[Algorithm] 가장 짧은 문자의 거리 (0) | 2023.07.24 |
---|---|
[Algorithm] 숫자만 추출 (0) | 2023.07.19 |
[Algorithm] 회문 문자열 (0) | 2023.04.03 |
[Algorithm] 중복문자제거 (0) | 2023.03.24 |
[Algorithm] 특정 문자 뒤집기 (0) | 2023.03.23 |