티스토리 뷰
반응형
문제
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 합니다.
문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다.
알파벳 이외의 문자들의 무시합니다.
입력
첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
출력
첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다.
예시 입력
found7, time: study; Yduts; emit, 7Dnuof
예시 출력
YES
문제 풀이
[첫번째 풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
input = input.replaceAll("[^a-zA-Z]", "").toLowerCase();
StringBuffer buffer = new StringBuffer(input);
if (input.equals(buffer.reverse().toString())) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
(Time 146ms / Memory 27MB)
import java.util.Scanner;
public class Main {
public String Solution(String str) {
StringBuffer buffer = new StringBuffer(str);
if (str.equals(buffer.reverse().toString())) {
return "YES";
}
return "NO";
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
input = input.replaceAll("[^a-zA-Z]", "").toLowerCase();
Main main = new Main();
System.out.println(main.Solution(input));
}
}
(Time 162ms / Memory 27MB)
- 알파벳만의 문자열이 앞/뒤로 동일한 지 비교해보기 위해 알파벳 정규식을 이용해 [a-zA-Z]가 아니면 빈칸으로 치환하도록 replaceAll 시켰다. 이 때 정규식에 해당되지 않은 문자를 고르기 위해 정규식 앞에 ^를 넣어준다. (ex. [^a-zA-Z])
반응형
'Java > Coding Test' 카테고리의 다른 글
[코딩테스트] 가장 짧은 문자거리 (0) | 2022.02.27 |
---|---|
[코딩테스트] 숫자만 추출 (0) | 2022.02.27 |
[코딩테스트] 회문 문자열 (0) | 2022.02.27 |
[코딩테스트] 중복문자제거 (0) | 2022.02.25 |
[코딩테스트] 특정 문자 뒤집기 (0) | 2022.02.22 |