JAVA 코딩 알고리즘 연습/프로그래머스

프로그래머스 - 짝지어 제거하기 / JAVA (자바) 코딩 알고리즘 연습

easpop 2023. 1. 4. 16:23
728x90
반응형

반응형

레벨 2인데, 레벨 2 보다는 레벨 1 같았던 문제..??

 

처음에는 s.split("")으로 배열에 한번 담고서 stack으로 처리했는데, 정답 제출하고

효율성 테스트까지도 통과를 했다. 근데 다른 이것저것 테스트를 해보다가, 똑같은 코드를 넣었는데 시간 초과??

뭐지.....

그래서 그냥 배열에 담는 과정을 생략하고 charAt으로 바로 비교해서 스택으로 처리했다;;ㅋㅋㅋ

import java.util.Stack;

class Solution{
    public int solution(String s) {
        int answer = -1;

        Stack<Character> stack = new Stack<>();

		stack.add(s.charAt(0));
		for (int i = 1; i < s.length(); i++) {
			if (stack.size() != 0) {
				if (stack.peek().equals(s.charAt(i))) {
					stack.pop();
				} else {
					stack.push(s.charAt(i));
				}
			} else {
				stack.push(s.charAt(i));
			}
		}

		if (stack.empty()) {
			answer = 1;
		} else {
			answer = 0;
		}
        
        return answer;

    }
}
728x90
반응형