알고리즘 기초 - 22 ( 팰린드롬 판별 )

Algorithm/풀었던문제 2019. 12. 23. 15:13



팰린드롬 (palindrome)이란?


앞에서부터 읽던, 뒤에서부터 읽던 같은 단어를 말한다. (중간을 기준으로 앞, 뒤가 대칭이 되는 단어)


'aba' 나 '51315' 같은 단어를 팰린드롬이라고 하고, 'abc' 나 ''12345' 같은 단어는 팰린드롬이 아니다.



출처


https://mygumi.tistory.com/176




Main.java


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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package Problem22;
 
import java.util.Scanner;
 
public class Main {
 
    public static void main(String[] args) {
 
        // 입력된 수가 팰린드롬인지 판별,
        // 팰린드롬이란 ??앞으로 읽던, 뒤에서 부터 읽던 같은 단어
 
        //int 타입은 정수타입이기 때문에 인덱스가 없어서 판별하기 힘드므로 String 타입을 사용한다.
        
        System.out.println("판별할 문자나 숫자를 입력하시오.");
        
        String n;
        
        Scanner scan = new Scanner(System.in);
        
        n = scan.nextLine();
        
        int len = n.length();
        
        //flag는 팰린드롬이면 그대로 true로 출력이 되고 아래 for문을 돌려서 if문에 해당이 되서
        //팰린드롬이 아니라면 false가 출력되어서 팰린드롬을 판별할 수 있다.

        boolean  flag = true;
        

        //궂이 끝까지 갈필요 없이 중간까지만 가면 되므로 len/2를 해준다.

        for (int i = 0; i < len/2; i++) {
            
            //if문의 좌항은 0번째 인덱스항 부터 계속 증가하면서 한칸씩 이동하고
            //우항은 끝쪽에 있는 인덱스항부터 계속 감소하면서 내려온다.
            //두 개의 값을 비교해서 서로 한번이라도 다르면 팰린드롬이 되지 못하므로,
            //flag에 false값을 주고, 출력하면 팰린드롬인지 아닌지 알 수 있다.

            if (n.charAt(i) != n.charAt(len-i-1)) {

                flag = false;

            }
            
        }
        
        System.out.println(flag);
    
    
    }
}
 
cs




출력 결과




출처


https://www.youtube.com/watch?v=gByou4ahmXs&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=23

: