import java.util.*;
class Solution
{
public int solution(String s)
{
int answer = 0;
if(s.length()== 1) {
return answer;
}
Stack<Character> st = new Stack();
for (char c : s.toCharArray()) {
if(!st.isEmpty() && st.peek() == c) {
st.pop();
} else {
st.push(c);
}
}
if(st.isEmpty()) {
answer = 1;
} else {
answer= 0 ;
}
return answer;
}
}
(1) 문자열의 길이가 == 1 즉, 한 문자라면 어차피 짝이 될 수 없으니 0을 return ;
(2) Character 타입으로 제네릭 지정하여 스택 객체 st 선언
(3) for-each 구문을 활용하여 char c 에 각 자리의 알파벳을 넣고 스택 객체가 비어있지 않고 만약 스택 객체를 조회한 알파벳과 char c가 일치한다면 st.pop(); 을 이용해 해당 알파벳을 꺼낸다.
그렇지 않다면 스택 객체 st에 해당 알파벳 push() 메소드로 추가
(4) 만약 스택 객체 st 가 비어있다면 1을 반환 비어있지 않다면 0을 반환
문자열을 짝 짓는 문제는 보통 스택을 활용하여 풀어보자
for-each, 제네릭에 대해 정리해보자
for-Each
for( 각 요소 값 : 배열이나 컨테이너 값 )
{
반복 수행할 코드
}
foreach 구문도 잘 기억해두자