문제

풀이코드
public int solution(String s){ //짝지어 제거하기
Stack<Character> ch = new Stack<>(); //짝을 판별할 스택을 생성
for(char x : s.toCharArray()){
if(!ch.isEmpty() && ch.peek()== x){ //스택이 비어있지 않고, 같은 문자일 경우
ch.pop(); //같은 문자를 제거
}else{ //같은 문자가 아닐경우
ch.push(x); //문자를 스택에 넣음
}
}
return ch.isEmpty()? 1:0; //스택이 비어있으면 1을 반환 아니면 0을 반환
}
이 문제는 스택의 대표적인 문제인 괄호제거 문제와 굉장히 비슷하다.
괄호제거 문제는 단순히 {}을 한 묶음으로 해서 제거를 하지만 이 문제는 {}가 아닌
같은 알파벳들을 묶어서 제거를 하는 것이다.
그래서 괄호제거 문제와 거의 풀이는 비슷해서 따로 설명은 크게 안하고 주석만 읽어봐도 될 것 같다!
'프로그래머스 > Level 2' 카테고리의 다른 글
| [프로그래머스][Level2][Java] 위장 (0) | 2022.05.17 |
|---|---|
| [프로그래머스][Level2][Java] 튜플 (0) | 2022.04.14 |
| [프로그래머스][Level2][Java] 점프와 순간이동 (0) | 2022.04.08 |
| [프로그래머스][Level2][Java] 영어 끝말잇기 (0) | 2022.04.04 |
| [프로그래머스][Level2][Java] n^2배열 자르기 (0) | 2022.04.04 |