๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ œ

[์ž๋ฐ”] Leetcode 1332 - Remove Palindromic Subsequences

by applemango2021 2021. 3. 9.

์‹ซ์–ด์š”๊ฐ€ ์ข‹์•„์š”๋ณด๋‹ค 2๋ฐฐ ์ด์ƒ ๋งŽ์•„์„œ ๊ธด์žฅํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ๋‚˜์˜์ง€ ์•Š์•˜๋‹ค. ๋‚˜๋ฆ„ ๋ฐœ์ƒ์˜ ์ „ํ™˜์„ ํ•„์š”๋กœ ํ•ด์„œ ๋‚ด ์•„๋ฌด๋ž˜๋„ ๊ธฐ๋ณธ๋‹ค์ง€๊ธฐ๋ฅผ ์ข‹์•„ํ•˜๋Š” ๋ฆฌํŠธ์ฝ”๋“œ ์œ ์ €๋“คํ•œํ…Œ๋Š” ๋ณ„๋กœ์˜€๋‚˜๋ณด๋‹ค.

์ด ๋ฌธ์ œ๋Š” ์ฃผ์–ด์ง€๋Š” ์•ŒํŒŒ๋ฒณ์ด a์™€ b๋ฟ์ด๋ผ๋Š” ์ ์ด ์—„์ฒญ๋‚œ ํžŒํŠธ๊ฐ€ ๋˜๊ณ , remove๋ฅผ ์‹ค์‹œํ•ด์•ผ ํ•˜๋Š” ํšŸ์ˆ˜๋งŒ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค๋Š” ์ ์ด ํ’€์ด๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค. 

์ฃผ์–ด์ง„ ์ œํ•œ ์†์—์„œ ๊ฐ€๋Šฅํ•œ ๋‹ต์€ 3๊ฐ€์ง€ ๋ฟ์ด๋‹ค. 

1) s๊ฐ€ null์ผ ๋•Œ → return 0

2) s๊ฐ€ Palindrome์ผ ๋•Œ → return 1

3) s๊ฐ€ Palindrome์ด ์•„๋‹ ๋•Œ → ๊ธ€์ž ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•ด์„œ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— return 2

 

์ด์ค‘์—์„œ 1๋ฒˆ๊ณผ 2๋ฒˆ์€ ๋ฐ”๋กœ ์ดํ•ด๊ฐ€ ๋˜๋Š”๋ฐ, ๊ณผ์—ฐ 3๋ฒˆ์ด ์ •๋ง ๋ชจ๋“  ๊ฒฝ์šฐ์— ํ•ด๋‹น๋  ์ง€๊ฐ€ ์‚ฌ์‹ค ์ข€ ์˜๋ฌธ์ด๋‹ค. ์—ฌํƒœ ๋‚ด๊ฐ€ ๋งŒ๋“  ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋“ค๋งŒ์œผ๋กœ ํ™•์ธํ–ˆ์„ ๋•Œ๋Š” ์ง„์งœ ๋ฌธ์ž 1๊ฐœ๋งŒ ์ œ๊ฑฐํ•˜๋ฉด ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ธฐ๋Š” ํ•˜๋˜๋ฐ, ์ˆ˜ํ•™์ ์œผ๋กœ ์ฆ๋ช…ํ•˜๊ณ  ์‹ถ๋‹ค ใ… ใ… 

class Solution {
    public int removePalindromeSub(String s) {
        
        
        if(s.length()==0 || s==null){
            return 0;
        }
        
        int a = 0;
        int b = s.length()-1;
        
        
        while(a<b){
            if(s.charAt(a)==s.charAt(b)){
                a++;
                b--;
            }else{
                return 2;
            }
        }
        
        return 1;
        
    }
}