ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ผ๋ถ€ ๋ฌธ์ œ๋Š” ๊ณ ์ „์ ์ธ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ด๋Ÿฌํ•œ ์ž‘์—…์€ ์ˆ˜ํ•™๊ณผ ๊ด€๋ จ์ด ์žˆ์œผ๋ฉฐ ์ปดํ“จํ„ฐ ๊ณผํ•™ ์ „๊ณต ํ•™์ƒ๋“ค๊ณผ ๋ฉด์ ‘์—์„œ ๊ตฌ์ง์ž์—๊ฒŒ ๋ฌป๋Š” ๊ฒƒ์„ ๋งค์šฐ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ๋‹น์‹ ์˜ ์ƒ๊ฐ์„ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๋ฐฉ์‹์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ํ›ˆ๋ จ์‹œํ‚ค๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋Š” ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ ์ด ๊ธฐ์‚ฌ์—์„œ ์ด๋ฅผ ๊ณ ๋ คํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํšŒ๋ฌธ์ด๋ž€ ๋ฌด์—‡์ด๋ฉฐ ํšŒ๋ฌธ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ด์œ 

ํšŒ๋ฌธ์€ ์ˆซ์ž, ๋ฌธ์ž ์กฐํ•ฉ, ๋‹จ์–ด ๋˜๋Š” ํ…์ŠคํŠธ๊ฐ€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ์ฝํžˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์š”์•ฝํ•˜๋ฉด, ํšŒ๋ฌธ์€ ์ค‘์‹ฌ์ด ๋Œ€์นญ์ธ ๋ชจ๋“  ๋ฌธ์ž ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ์–ด๋Š” ๋ฌธ์ž ๊ทธ๋Œ€๋กœ "๋’ค๋กœ ๋‹ฌ๋ ค๊ฐ€๋‹ค"(palin์€ "๋‹ค์‹œ, ๋’ค๋กœ", dromos๋Š” "๋‹ฌ๋ฆฌ๋‹ค")์—์„œ ํŒŒ์ƒ๋œ ๊ทธ๋ฆฌ์Šค์–ด ์–ด๊ทผ์—์„œ ์œ ๋ž˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์—์„œ Palindrome์€ ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ํšŒ๋ฌธ์˜ ์˜ˆ:
  • 1881๋…„
  • ์•„์ฟ ์ฟ ์นด
  • ํŒ
  • ์ •์˜ค
  • ์ˆ˜์ค€
  • ๋กœํ…Œ์ดํ„ฐ
  • ๋‚ด ์ฒด์œก๊ด€
  • ๋ถ€์ธ ์ €๋Š” ์•„๋‹ด์ž…๋‹ˆ๋‹ค
  • ์ด์ œ ์ „์Ÿ์—์„œ ์Šน๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค!
1881์€ ํŒฐ๋ฆฐ๋“œ๋กฌ ์ˆซ์ž์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ํŒฐ๋ฆฐ๋“œ๋กฌ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ์‚ฌ์—์„œ๋Š” ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋˜๋Š” ํšŒ๋ฌธ์„ ์‚ดํŽด๋ณด๊ฒ ์ง€๋งŒ ์ผ๋ถ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Java์˜ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ํšŒ๋ฌธ์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํšŒ๋ฌธ์„ ์ฐพ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์‚ฌ์‹ค ์šฐ๋ฆฌ๋Š” ์ผ์ƒ์ƒํ™œ์—์„œ ์ž์ฃผ ํšŒ๋ฌธ์„ ์ฐพ์„ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋งค์šฐ ๊ตฌ์ฒด์ ์ธ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ธฐ์–ตํ•œ๋‹ค๋ฉด ์‹ค์ œ๋กœ ๋” ์ž์ฃผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ํšŒ๋ฌธ์ด๋‚˜ ์ˆซ์ž๋ฅผ ๊ฒ€์ƒ‰ํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ž์—ด์—์„œ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํšŒ๋ฌธ๊ณผ ๊ด€๋ จ๋œ ๋ฌธ์ œ์—๋Š” ์ค‘์š”ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ์˜ฌ๋ฆผํ”ผ์•„๋“œ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ํšŒ๋ฌธ์„ ์‹๋ณ„ํ•˜๋Š” ์ž‘์—…์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ณด ํ”„๋กœ๊ทธ๋ž˜๋จธ์™€ ๊ด€๋ จ๋œ ๋‘ ๋ฒˆ์งธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ์ธํ„ฐ๋ทฐ์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ, ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋นจ๋ฆฌ ์ž‘์„ฑํ•˜๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์Œ, ๊ณผํ•™์—์„œ ํšŒ๋ฌธ์„ ์ฐพ๋Š” ๊ฐ€์žฅ ์‹ค์šฉ์ ์ธ ์‘์šฉ์€ ์ƒ๋ฌผํ•™์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค. Wikipedia์— ๋”ฐ๋ฅด๋ฉด ์ƒ๋ฌผํ•™์  ํ™”ํ•ฉ๋ฌผ์˜ ํšŒ๋ฌธ์„ฑ์€ ๋‹ค์–‘ํ•œ ์ƒ๋ฌผํ•™์  ํ™”ํ•ฉ๋ฌผ์˜ ํŠน์„ฑ์— ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

Palindrome ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋“œ ์˜ˆ์ œ

์ƒ๊ฐ ํ•ด๋ด. ๋ฌธ์ž์—ด์€ ์ผ๋ จ์˜ ๋ฌธ์ž, ์ฆ‰ ๋ฌธ์ž ๋ฐฐ์—ด์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ˆœ์„œ๋ฅผ ์–‘์ชฝ์—์„œ ์ค‘๊ฐ„์œผ๋กœ ๋”ฐ๋ผ๊ฐ€๋ฉด์„œ ๊ทน๋‹จ์ ์ธ ์บ๋ฆญํ„ฐ๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ๋…ผ๋ฆฌ์ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ค‘์•™์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๋ชจ๋“  ๋ฌธ์ž๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํšŒ๋ฌธ์ด ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. String์ด palindrome์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด boolean ๋ฉ”์„œ๋“œ validPalindrome(String s)๋ฅผ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค. ์ž๋ฐ” ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

public class PalindromeTest1 {

//method to check if a string is palindrome    
public static boolean validPalindrome(String s) {
       for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
           if (s.charAt(i) != s.charAt(j)) {
               return false;
           }
       }
       return true;
   }

   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
       String s4 = "Now, sir, a war is won!"
       boolean b1 = validPalindrome(s1);
       boolean b2 = validPalindrome(s2);
       boolean b3 = validPalindrome(s3);
       boolean b4 = validPalindrome(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }

}
๊ธฐ๋ณธ ๋ฉ”์„œ๋“œ์—์„œ ํšŒ๋ฌธ ๋ฌธ์ž์—ด "level", "cool", "Madam" ๋ฐ "Now, sir, a war is won!"์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ณด์‹œ๋‹ค์‹œํ”ผ ์ฒซ ๋ฒˆ์งธ, ์„ธ ๋ฒˆ์งธ, ๋„ค ๋ฒˆ์งธ๋Š” ํšŒ๋ฌธ์ด์ง€๋งŒ ๋‘ ๋ฒˆ์งธ๋Š” ํšŒ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ๋ฌด์—‡์„ ์ œ๊ณตํ•ฉ๋‹ˆ๊นŒ?
์ˆ˜์ค€์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ๋ฉ‹์ง„๊ฐ€์š”? false ๋ถ€์ธ์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ๊ฑฐ์ง“์€ ์ด์ œ ์ „์Ÿ์—์„œ ์Šน๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค! ํšŒ๋ฌธ? ๊ฑฐ์ง“
๋”ฐ๋ผ์„œ ์ฒซ ๋ฒˆ์งธ๋Š” ํšŒ๋ฌธ์ด๊ณ  ๋‘ ๋ฒˆ์งธ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ธ ๋ฒˆ์งธ์™€ ๋„ค ๋ฒˆ์งธ๋Š” ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์™œ ๊ฒฐ๊ณผ๊ฐ€ ๊ฑฐ์ง“ ์ž…๋‹ˆ๊นŒ ? ์ด ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€ ๋ฌธ์ž๋Š” ๋Œ€๋ฌธ์ž์ด๊ณ  ์ผ๋ถ€๋Š” ์†Œ๋ฌธ์ž์ด๋ฉฐ Java M๊ณผ m์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ๋ฌธ์ž๋ผ๋Š” ์ ์„ ์ด๋ฏธ ์ง์ž‘ํ•˜์…จ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ์ฐจ์ด๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ์„ ํ•ด ๋ด…์‹œ๋‹ค. ๋‹ค์Œ์€ ๋ฌธ์ž์—ด์ด ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํšŒ๋ฌธ์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

public class PalindromeTest2 {

   //lowercase and uppercase characters should be treated the same:
   public static boolean validPalindrome(String s) {
       for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
           if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j)))
               return false;
       }
       return true;
   }

   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
        String s4 = "Now, sir, a war is won!"
       boolean b1 = validPalindrome(s1);
       boolean b2 = validPalindrome(s2);
       boolean b3 = validPalindrome(s3);
       boolean b4 = validPalindrome(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }

}
์ด๋ฒˆ์—๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ค€์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ๋ฉ‹์ง„๊ฐ€์š”? false ๋ถ€์ธ์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ „์Ÿ์—์„œ ์Šน๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค! ํšŒ๋ฌธ? ๊ฑฐ์ง“
์Œโ€ฆ ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. "Madam"์˜ ์ƒํ™ฉ์€ ๋‚˜์•„์ง€๊ณ  ์žˆ์ง€๋งŒ ๊ธธ๊ณ  ํ–‰๋ณตํ•œ ํšŒ๋ฌธ "์ด์ œ ์ „์Ÿ์ด ์Šน๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค!"๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  ๊ณต๋ฐฑ๊ณผ ๊ตฌ๋‘์  ๊ธฐํ˜ธ๊ฐ€ Java์˜ ๋ฌธ์ž์™€ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•œ๋‹ค๋ฉด ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋Ÿฌํ•œ ์‹ค์ˆ˜๋ฅผ ๋ฐ”๋กœ์žก๊ธฐ ์œ„ํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‹ค์‹œ ๊ฐœ์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๋ฐฑ๊ณผ ๊ตฌ๋‘์ ์„ ๋ฌด์‹œํ•˜๋„๋ก ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ€๋ฅด์น˜์ž. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ ์˜์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ๋ฌธ์ž๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Java์—์„œ ๊ฐœ์„ ๋œ ํšŒ๋ฌธ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค.

public class PalindromeTest3 {

   //in addition to the above, ignore all non alphanumeric chars like punctuation and spaces
   private static boolean isAlphanumeric(char c) {
       return Character.isAlphabetic(c) || Character.isDigit(c);
   }

   public static boolean validPalindromeIgnorePunctuation(String s) {
       for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
           // skip chars we should ignore
           while (j >= 0 && !isAlphanumeric(s.charAt(j))) j--;
           while (i < s.length() && !isAlphanumeric(s.charAt(i))) i++;
           // overskipped -> nothing left to validate
           if (i >= j) return true;

           if (Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j)))
               return false;
       }
       return true;
   }


   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
       String s4 = "Now, sir, a war is won!";
       boolean b1 = validPalindromeIgnorePunctuation(s1);
       boolean b2 = validPalindromeIgnorePunctuation(s2);
       boolean b3 = validPalindromeIgnorePunctuation(s3);
       boolean b4 = validPalindromeIgnorePunctuation(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }

}
์ตœ์†Œํ•œ ๊ฒฐ๊ณผ๋Š” ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ƒํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ˆ˜์ค€์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ๋ฉ‹์ง„๊ฐ€์š”? false ๋ถ€์ธ์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. ์ด์ œ ์ „์Ÿ์—์„œ ์Šน๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค! ํšŒ๋ฌธ? ์ง„์‹ค
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ง‰ ์‹œ์ž‘ํ–ˆ๋‹ค๋ฉด ๋ฌธ์ž์—ด ์ˆœํšŒ ๋ฐ ๋น„๊ต ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘๋™ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ด๊ฒƒ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ๋” ์ข‹์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๋ฌธ์ž์—ด ์ธ ๋ฌธ์ž ๋ฐฐ์—ด์„ ํ†ตํ•ด ๋ฐ”๋กœ ๊ทธ ๊ตฌ์ ˆ์˜ ๋‹จ์ˆœํ™” ๋œ ๋ฒ„์ „์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. StringBuffer.reverse ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ธฐํ˜ธ์™€ ๋Œ€๋ฌธ์ž ๋ฐ ์†Œ๋ฌธ์ž๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฒ„์ „์„ ์ˆ˜ํ–‰ํ•ด ๋ด…์‹œ๋‹ค.

public class PalindromeTest5 {

   public static boolean validPalindrome(String s) {

       StringBuffer buffer = new StringBuffer(s);
       buffer.reverse();
       String data = buffer.toString();

       if (s.equals(data)) {
           return true;
       }
       return false;
   }
   public static void main(String[] args) {
       String s1 = "level";
       String s2 = "cool";
       String s3 = "Madam";
       String s4 = "Now, sir, a war is won!";
       boolean b1 = validPalindrome(s1);
       boolean b2 = validPalindrome(s2);
       boolean b3 = validPalindrome(s3);
       boolean b4 = validPalindrome(s4);
       System.out.println("is " + s1 + " a palindrome? " + b1);
       System.out.println("is " + s2 + " a palindrome? " + b2);
       System.out.println("is " + s3 + " a palindrome? " + b3);
       System.out.println("is " + s4 + " a palindrome? " + b4);


   }
}
๊ฒฐ๊ณผ๋Š” ์ฒซ ๋ฒˆ์งธ ์˜ˆ์™€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.
์ˆ˜์ค€์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ํŒฐ๋ฆฐ๋“œ๋กฌ์ด ๋ฉ‹์ง„๊ฐ€์š”? false ๋ถ€์ธ์€ ํšŒ๋ฌธ์ž…๋‹ˆ๊นŒ? ๊ฑฐ์ง“์€ ์ด์ œ ์ „์Ÿ์—์„œ ์Šน๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค! ํšŒ๋ฌธ? ๊ฑฐ์ง“
์›ํ•œ๋‹ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์˜ˆ์—์„œ ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์ด ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋ณด๊ฐ•ํ•˜๋ ค๋ฉด Java ๊ณผ์ •์—์„œ ๋น„๋””์˜ค ๊ฐ•์˜๋ฅผ ์‹œ์ฒญํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.