SWEA - 4522. 세상의 모든 팰린드롬 :: 매운코딩
728x90
300x250

팰린드롬이 되냐 안되냐를 찾는 문제.

'?' 기호는 와일드 카드로 어떤 문자가 다 들어올수 있다고 생각한다.

 

ex) a??a 의 경우 ??에 pp가 들어오면 appa 로 팰린드롬이 된다. 

 

팰린드롬은 문자열이 주어지면 그 문자열을 반으로 짜르고

앞,뒤에서부터 한칸씩 좁혀가며 같은지 여부를 판단하면 된다.

ex) a??a 경우 반으로 잘라서 a? / ?a  이렇게 확인.

 

'?' 기호가 있으면 무조건 마주보고 있는 문자와 같은것으로 했다고 가정했다.

ex) ?a 로 들어오면 ? / a 를 잘라서 ?에 a가 들어와서 가능한걸로 보이게!

import java.util.Scanner;
import java.io.FileInputStream;

/*
   사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
   이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
 */
class Solution
{
	public static void main(String args[]) throws Exception
	{
		Scanner sc = new Scanner(System.in);
		
		int T = sc.nextInt();
		for (int tc = 0; tc < T; tc++) {
			String str = sc.next();
			boolean flag = false;
			for (int i = 0; i < str.length()/2; i++) {
            	//서로 마주보는 문자끼리 같으면서 와일드 카드가 아닌가?
				if(str.charAt(i)!=str.charAt(str.length()-1-i)
						&& str.charAt(str.length()-1-i)!='?' && str.charAt(i)!='?') {
					flag= true;
					break;
				}
			}
			
			if(flag)
				System.out.println("#"+(tc+1)+" Not exist");
			else
				System.out.println("#"+(tc+1)+" Exist");
			
		}
	}
}
728x90

+ Recent posts