-
728x90
[ 문제 풀이 ]
- 앞에서 부터 한 글자씩 스택에 넣는다.
- 단 스택의 제일 위(마지막에 넣은 글자)와 현재 글자가 같은 경우, 글자를 넣지 않고 스택에서 뺀다.
- 만약 스택이 비어있거나, 스택의 위에있는 문자와 다르다면, 스택에 글자를 넣는다.
- 다 처리한 후,
스택이 비어있으면 1, 안 비어있으면 0을 리턴한다.[ 전체 코드 ]
import java.util.Stack; class Solution { public int solution(String s) { Stack<Character> stack = new Stack<Character>(); for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); if (!stack.isEmpty() && ch == stack.peek()) stack.pop(); else stack.add(ch); } return stack.isEmpty() ? 1 : 0; } }
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[level2] 프로그래머스 - 빛의 경로 사이클(JAVA) (2) 2021.09.20 [level2] 프로그래머스 - 행렬 테두리 회전하기(JAVA) (0) 2021.09.19 [level2] 프로그래머스 - 더 맵게(JAVA) (0) 2021.09.18 [level3] 프로그래머스 - 베스트앨범(JAVA) (0) 2021.09.17 [level2] 프로그래머스 - 프린터(JAVA) (0) 2021.09.17 댓글