https://programmers.co.kr/learn/courses/30/lessons/12973?language=java
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
풀이 과정
- Java에서는 Python과 다르게 문자열 다루기가 조금 난해한거 같다..ㅜ
- 문자열의 toCharArray 메서드를 사용하거나 아니면 int[] 배열 형식으로 문자들을 처리하는 방식이 가장 좋아보이는 것 같음.
- 문제의 내용을 살펴보면, 두가지 과정을 반복해서 진행하면 된다.
- 스택의 맨 위의 값이 이번에 넣으려는 문자와 같다면, 스택에 있는 값을 빼주고 다음 문자로 넘어감.
- 스택의 맨 위 값과 이번에 넣으려는 문자와 다르면, 그냥 스택에 문자를 넣어준다.
- 마지막으로, 스택이 비어있는지 여부를 확인한 다음 스택이 비어있다면 1, 비어있지 않다면 0을 출력한다.
소스 코드
import java.util.Stack;
class Solution
{
public int solution(String s)
{
Stack<Integer> stack = new Stack<>();
int[] targetChars = s.chars()
.map(i -> i - '0')
.toArray();
for (int ch : targetChars) {
if (!stack.isEmpty() && stack.peek() == ch) {
stack.pop();
continue;
}
stack.add(ch);
}
if (stack.isEmpty()) {
return 1;
}
return 0;
}
}
'알고리즘[Java] > 프로그래머스' 카테고리의 다른 글
[ Lv 2 ] 가장 큰 수 (0) | 2022.01.30 |
---|---|
[ Lv 2 ] 튜플 (0) | 2022.01.29 |
[ Lv 3 ] [ DP ] 보행자 천국 (0) | 2021.12.21 |
[ Lv 2 ] [ BackTracking ] 단체사진 찍기 (0) | 2021.12.19 |