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
'알고리즘 > 문자열' 카테고리의 다른 글
프로그래머스[Level2] - 괄호 변환 [문자열][2020 KAKAO BLIND RECRUITMENT] - Java (0) | 2020.09.12 |
---|---|
프로그래머스[Level2] - 오픈채팅방 [문자열][2019 KAKAO BLIND RECRUITMENT] - Java (0) | 2020.09.11 |
프로그래머스[Level2] - 튜플 [문자열][2019 카카오 개발자 겨울 인턴십] - Java (0) | 2020.09.11 |
프로그래머스[Level2] - 문자열 압축 [2020 KAKAO BLIND RECRUITMENT] (0) | 2020.08.29 |
SWEA - 8821. 적고 지우기 (0) | 2020.03.14 |