알고리즘

프로그래머스 : 짝지어 제거하기 (Java)

만년다딱2 2021. 5. 21. 15:30

1. 문제링크

https://programmers.co.kr/learn/courses/30/lessons/12973

 

코딩테스트 연습 - 짝지어 제거하기

짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙

programmers.co.kr

2. 접근방법

짝이 되면 지우고 아니면 그전까지 쌓여있는? 퍼즐 같은 느낌이다

 

뿌요뿌요를 아는가? 뿌요뿌요 게임이다

 

뿌요뿌요는 스택입니다 스택으로 만나면 지우고 아니면 넘어가고를 반복해서 스택사이즈가 0이라면?!

 

다 지워진 것이다!

3. 코드

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.isEmpty() && stack.peek() == s.charAt(i)) {
				stack.pop();
			} else
				stack.add(s.charAt(i));
		}
		if(stack.isEmpty())
			return 1;
		else
			return 0;
	}
}

4. 마치며

스택에 조금 익숙해진거 같다.

 

기분이 좋다.