알고리즘 문제풀이 - String(문자열) :: 7. 회문 문자열

dahee·2022년 2월 23일
0

🔍 Algorithm

목록 보기
7/8

문제

앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.

입력

첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.

출력

첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.

예시 입력 1

gooG

예시 출력 1

YES

🎇 Solution.java

import java.util.*;
  
class Main {
  
  public String solution(String str) {
    String answer = "YES";
    str = str.toUpperCase();
    char[] s = str.toCharArray();
    int lt = 0;
    int rt = str.length()-1;
    
    while (lt < rt) {
        if (s[lt] == s[rt]) {
            lt++;
            rt--;
        } else {
            answer = "NO";
            break;
        }
    }
    return answer;
  }
  
  public static void main(String[] args){
    Main T = new Main();

    Scanner kb = new Scanner(System.in);
    String str = kb.next();

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

  }
}

다른 풀이 (len/2)

import java.util.*;
  
class Main {
  
  public String solution(String str) {
    String answer = "YES";
    str = str.toUpperCase();
    int len = str.length();
    
    for (int i=0; i<len/2; i++) {
        if(str.charAt(i) != str.charAt(len-i-1)) return "NO";
    }
    
    return answer;
  }
  
  public static void main(String[] args){
    Main T = new Main();

    Scanner kb = new Scanner(System.in);
    String str = kb.next();

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

  }
}

str.equalsIgnoreCase()를 이용한 풀이

import java.util.*;
  
class Main {
  
  public String solution(String str) {
    String answer = "NO";
    String tmp = new StringBuilder(str).reverse().toString();
    if(str.equalsIgnoreCase(tmp)) answer = "YES";
    
    return answer;
  }
  
  public static void main(String[] args){
    Main T = new Main();

    Scanner kb = new Scanner(System.in);
    String str = kb.next();

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

  }
}

💭 정리

new StringBuilder(str).reverse().toString() -> 문자열 뒤집기
str.equalsIgnoreCase(tmp) -> 대소문자 구분없이 문자열 비교
profile
왕!!!! 왕!!!! 왕!!초보 🐶발자

0개의 댓글