Algorithm/Programmers

💚[Lv.2] 짝지어 제거하기 : Java

say! 2026. 1. 30. 17:13
728x90
 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

1. 같은 알파벳이 2개 붙어있는 짝 찾기

2. 1에서 찾은 짝 제거하기 > 앞뒤로 문자열 이어부팅기

=> 문자열 모두 제거가능하면 1 리턴, 아니면 0 리턴

 

#예시

baabaa

b aa baa > bb aa > aa > 모두 제거

=> 1 리턴

 

cdcd => 0 리턴

 

포인트 : 직전 문자만 비교하면 됨

 

*StringBuilder에서 문자 제거하는 법

sb.delete(start, end);   // 범위 삭제
sb.deleteCharAt(index); // 특정 위치 삭제

 


-정답 코드

class Solution
{
    public int solution(String s)
    {
        int answer = -1;

        StringBuilder sb = new StringBuilder();
        for(int i=0; i<s.length(); i++){
            char c = s.charAt(i);
            int l = sb.length();       
            
            if(l > 0 && sb.charAt(l-1) == c){
                sb.deleteCharAt(l-1);
            }
            else{
                sb.append(c);
            }
        }

        return sb.length() == 0 ? 1 : 0;
    }
}