반응형
문제분석
문제 예시로, baabaa 라면, 문자열이 들어오면서 중복이 일어나면 제거하는 연산을 해주면된다.
문제를 많이풀면 눈치가 생기는데, 바로 Stack알고리즘이 안성맞춤이다.
문자열 S를 하나씩끊어서 Stack에다 집어넣고,
Stack.pop() 과 넣을문자가 같으면, 제거연산을 실행하면된다.
모든 문자열을 넣엇을때, 제거할수있으면 1 return
없으면 0을 return한다.
문제풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.*;
class Solution
{
public int solution(String s)
{
int answer = 0;
Stack<Character> stack = new Stack<>();
for(char data:s.toCharArray()){
if(!stack.empty()&&stack.peek().equals(data)){
stack.pop();
}
else{
stack.push(data);
}
}
if(stack.empty()){
answer=1;
}
return answer;
}
}
|
cs |
반응형
'알고리즘 > 프로그래머스 Level2' 카테고리의 다른 글
[프로그래머스,Java] Levle2: 메뉴 리뉴얼 (0) | 2021.10.17 |
---|---|
[프로그래머스,java] Levle2: n^2배열 자르기 (2) | 2021.10.16 |
[프로그래머스,Java] Level2: 교점에 별 만들기 [위클리 챌린지 10주차] (1) | 2021.10.12 |
[프로그래머스, 자바] Level2:전력망을 둘로 나누기 (위클리 챌린지 9주차) (0) | 2021.10.05 |
[프로그래머스,자바] Level2 : 타겟 넘버 (0) | 2021.09.29 |