[programmers] 스택
in 기타 등등 on Coding Test
스택문제
스택문제에 계속 비슷한 개념이 등장한다
이참에 아예 정리하도록 한다!
뿌요뿌요
지인에게 들은 설명으로는 스택문제는 뿌요뿌요와 같다
위에서 아래로 각 네모조각이 떨어지는 건데 이때 이 네모의 색깔이 맞으면 하나씩 팡팡 터지는 것이다
비슷한 스택 문제들
짝지어 제거하기 https://programmers.co.kr/learn/courses/30/lessons/12973?language=java 올바른 괄호 https://programmers.co.kr/learn/courses/30/lessons/12909
한문제가 더 있었는데 기억이 안난다 ㅠ
문제 풀이 (짝지어 제거하기)
풀이1
초창기에는 String
자료형으로 넣었는데
char
연산 더 빠른 것을 알고나서는 char
로 바꾸었다
public int solution(String s)
{
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char toPush = s.charAt(i);
if (!stack.isEmpty()) {
Character peek = stack.peek();
if (peek == toPush) {
stack.pop();
continue;
}
}
stack.push(toPush);
}
out.println("stack = " + stack);
if (stack.isEmpty()) {
return 1;
}
return 0;
}
풀이2
다른사람의 풀이를 보고 조금 더 개량해보았다
public int solution2(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (stack.isEmpty()) {
stack.push(c);
} else if (stack.peek() == c) {
stack.pop();
} else {
stack.push(c);
}
}
return stack.isEmpty() ? 1 : 0;
}