[programmers] 스택

스택문제

스택문제에 계속 비슷한 개념이 등장한다

이참에 아예 정리하도록 한다!

뿌요뿌요

image

지인에게 들은 설명으로는 스택문제는 뿌요뿌요와 같다

위에서 아래로 각 네모조각이 떨어지는 건데 이때 이 네모의 색깔이 맞으면 하나씩 팡팡 터지는 것이다

비슷한 스택 문제들

짝지어 제거하기 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;
}




© 2020.12. by 따라쟁이

Powered by philz