문제 출처 - Programmers
문제는 여기
[풀이]
1. 주어진 문자열을 한 글자씩 잘라서 탐색을 한다.
2. 스택이 비어있지 않고 스택의 peek()이 현재 글자와 같다면 스택을 pop()해주고 아니라면 현재 글자를 push()해준다.
3. 모든 글자에 대해 다 진행하고 스택이 비었다면 1을 출력하고 아니라면 0을 출력한다.
[접근]
1. 스택을 사용하는 가장 기본적인 문제라고 생각하였다.
2. 한 글자씩 잘라 스택과 비교하며 체크해나가면 되겠다고 생각하였다.
[코드]
import java.util.*;
class Solution
{
public int solution(String s)
{
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
// 스택이 비어있지 않고
// 스택의 맨 위가 일치하면
if (!stack.isEmpty() && stack.peek() == c)
stack.pop(); // 제거
else // 아니면
stack.push(c); // 추가
}
// 스택이 비어있으면 1 출력 아니면 0출력
return stack.isEmpty() ? 1 : 0;
}
}
'문제 풀이 > Programmers' 카테고리의 다른 글
[프로그래머스] 체육복 (JAVA) (0) | 2022.03.27 |
---|---|
[프로그래머스] 모의고사 (JAVA) (0) | 2022.03.25 |
[프로그래머스] 기능개발 (JAVA) (0) | 2022.03.22 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (JAVA) (0) | 2022.03.21 |
[프로그래머스] [1차] 뉴스 클러스터링 (JAVA) (0) | 2022.03.18 |