[문제풀이]

조히고닝·2023년 3월 16일
0

회문문자열 만들기.
한자리를 지워서 팰린드롬이면 "yes" 리턴.
만들 수 없으면 "NO" 리턴하게 만들자
입출력 예시

  s					result
"abcbdcba"			"YES"
"abcabbakcba"		"YES"
"abcacbakcba"		"NO"
import java.util.*;
class Main {
	public Boolean isPalindrome(String s){
		Boolean answer=true;
		int rt=s.length()-1;
		int lt=0;
		while(lt<rt){
			if(s.charAt(lt)!=s.charAt(rt)) return false;
			else{
				lt++;
				rt--;
			}
		}
		return answer;
	}
	public String solution(String s){
		String answer="YES";
		int rt=s.length()-1;
		int lt=0;
		while(lt<rt){
			if(s.charAt(lt)!=s.charAt(rt)){
				String s1=s.substring(lt, rt);
				String s2=s.substring(lt+1, rt+1);
				if(!isPalindrome(s1) && !isPalindrome(s2)) return "NO"; 
				else break;
			}
		else{
			lt++;
			rt--;
		    }
		}
		return answer;
	}

	public static void main(String[] args){
		Main T = new Main();
		System.out.println(T.solution("abcabbakcba"));
		System.out.println(T.solution("abcacbakcba"));
	}
}

만약 문제가 두자리까지 지울 수 있었다면? 생각해봐야겠다.

0개의 댓글