728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모리: 63 MB, 시간: 62.68 ms
사용 알고리즘: 자료구조, 스택
문자열의 문자들을 하나씩 스택에 넣는다.
만약 스택의 바로 위에 있는 문자가 현재 스택에 넣으려는 문자와 같다면, 알파벳이 2개 붙어있는 짝을 찾은 것이므로 pop을 통해 짝지어 제거하기를 해준다.
그게 아니라면 해당 문자를 push 해준다.
import java.util.*;
class Solution
{
public int solution(String s)
{
char[] arr = s.toCharArray();
// 문자를 하나씩 확인하며, 스택의 맨 위에 같은 문자가 있으면 pop, 아니라면 push
Stack<Character> stack = new Stack<>();
for(int i = 0; i < arr.length; i++) {
if(stack.isEmpty() || stack.peek() != arr[i]) stack.push(arr[i]);
else stack.pop();
}
int answer = 0;
if(stack.size() == 0) answer = 1; // 스택이 비어있다면 짝지어 제거하기가 성공한 것
return answer;
}
}728x90
'Problem Solving > Programmers' 카테고리의 다른 글
| [프로그래머스, 17685] [3차] 자동완성 (java) (0) | 2024.08.11 |
|---|---|
| [프로그래머스, 12938] 최고의 집합 (java) (0) | 2024.08.11 |
| [프로그래머스, 12934] 정수 제곱근 판별 (java) (0) | 2024.08.10 |
| [프로그래머스, 12929] 올바른 괄호의 갯수 (java) (0) | 2024.08.09 |
| [프로그래머스, 12987] 숫자 게임 (java) (0) | 2024.08.09 |