while문 + String.replace() 사용
package com.company;
public class Solution {
static public void main(String[] args) {
String str1 = "baabaa";
String str2 = "cdcd";
System.out.println(solution(str1));
System.out.println(solution(str2));
}
static public int solution(String str)
{
while (true) {
String afterStr = str;
for (char c = 'a'; c <= 'z'; c++) {
String tempStr = "" + c + c;
str = str.replace(tempStr, "");
}
if(afterStr.equals(str)){
return 0;
}
if(str.length() == 0) {
return 1;
}
}
}
}
[테스트케이스는 모두 통과 / 효율성 테스트 실패]
Stack 사용
package com.company;
import java.util.Stack;
public class Solution {
static public void main(String[] args) {
String str1 = "baabaa";
String str2 = "cdcd";
System.out.println(solution(str1));
System.out.println(solution(str2));
}
static public int solution(String str) {
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < str.length(); i++) {
char tempChar = str.charAt(i);
if(!stack.isEmpty() && stack.peek().equals(tempChar)){
stack.pop();
}else{
stack.push(tempChar);
}
}
if(stack.isEmpty()) return 1;
return 0;
}
}
[테스트케이스는 모두 통과 / 효율성 테스트 통과]