티스토리 뷰

반응형

 

문제

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

문자열이 입력되면 해당 문자열이 팰린드롬이면 "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])

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함