알고리즘/프로그래머스
[JAVA]프로그래머스_짝지어 제거하기
kistone
2021. 7. 26. 22:39
문제 : https://programmers.co.kr/learn/courses/30/lessons/12973
문제유형 : 구현
풀이방식 : 스택
- 문자열의 길이 : 1,000,000이하의 자연수 이기때문에 for문을 사용하게되면 시간초과가 나온다.
소스코드
import java.util.*;
class Solution
{
public int solution(String s)
{
int answer = -1;
int sLength = s.length();
Stack<Character> stack = new Stack<>();
stack.push(s.charAt(0));
for(int i=1; i<sLength; i++){
char nowChar = s.charAt(i);
if(stack.empty()){
stack.push(nowChar);
}else{
if(stack.peek()==nowChar){
stack.pop();
} else {
stack.push(nowChar);
}
}
}
if(stack.size()==0){
answer = 1;
}else {
answer = 0;
}
System.out.println(stack.size());
return answer;
}
}