티스토리 뷰

1) 생각

앞 뒤로 똑같은 문자를 팰린드롬이라고 한다. 이때 치트키 문자인 "*"는 어떤게 들어가도 상관이 없다.

문자가 주어질 때, 그 문자가 팰린드롬이 될 수 있는지 판단해라.


첫 번째 생각

앞 뒤가 똑같아야 하므로 문자열의 앞에서부터 그리고 뒤에서부터를 비교한다.

만약 해당 Index 짝이 다르다면 그 짝중에 "*"가 있는지 판단해본다.


2) 방안

1) 반복문을 통해 변수 j를 늘리면서 앞쪽에서 진행하는 Index를 얻고, 해당 문자열 길이 - j - 1을 통해서 뒤에서 진행하는 Index를 얻어 비교한다.


2) 다르다면 우선 flag를 false로 바꾼다.


3) 해당 Index의 짝이 다르면 둘 중 *가 있는지 파악하여 있다면 flag를 다시 true로 바꿔준다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.io.IOException;
import java.util.Scanner;
 
public class Solution {
    static int[][] arr;
    static int n;
    public static void main(String[] args) throws IOException{
        Scanner sc = new Scanner(System.in);
        int tc = sc.nextInt();
        for(int i=1;i<=tc;i++) {
            String t = sc.next();
            boolean flag = true;
            for(int j=0;j<t.length();j++) {
                if(t.charAt(j)!=t.charAt(t.length()-j-1)) {
                    flag = false;
                    if(t.charAt(j)=='*'||t.charAt(t.length()-j-1)=='*')
                        flag = true;
                }
            }
            if(flag) System.out.println("#"+i+" "+"Exist");
            else System.out.println("#"+i+" "+"Not exist");
        }            
    }
}
cs


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday