팰린드롬(Palindrome) 문제

in #kr6 years ago

algorithm.png

문제


팰린드롬은 거꾸로 읽어도, 바르게 읽어도 똑같은 문장입니다.

예를들어

  • level 팰린드롬입니다.
  • star 팰린드롬이 아닙니다.

주어진 문자열이 팰린드롬인지 출력하세요.


풀이


  1. 길이가 n 인 문자열을 입력합니다.

  2. 문자열의 첫번째, n 번째 캐릭터가 같은지 검사합니다.

  3. 문자열의 첫번째 + 1, n 번째 - 1 캐릭터가 같은지 검사합니다.

  4. 문자열의 첫번째 + 2, n 번째 - 2 캐릭터가 같은지 검사합니다.

  5. 반복합니다.

public class Hello {
    public static void main(String[] args) {
        String str = "level"; // 팰린드롬 문자열
        boolean isPalindrome = false;
        int center = str.length() / 2;
        int last = str.length() - 1;

        for (int start = 0; start < center; start++) {
            // 격차를 줄여가며 처음과 끝의 캐릭터가 같은지 검사
            if (str.charAt(start) == str.charAt(last - start)) {
                isPalindrome = true;
            } else {
                isPalindrome = false;
            }
        }

        // 결과 확인
        System.out.println(isPalindrome);
    }
}


> java Hello
true