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;
}
}
}
}
[테스트케이스는 모두 통과 / 효율성 테스트 실패]
![](https://velog.velcdn.com/images/as9587/post/789b2e24-29f0-4275-a17a-0e9415310dba/image.png)
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;
}
}
[테스트케이스는 모두 통과 / 효율성 테스트 통과]
![](https://velog.velcdn.com/images/as9587/post/a8be69eb-06b9-475e-a6d5-acaef25b92f0/image.png)