Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- string
- implement
- hash table
- Math
- 코딩테스트
- Method
- sorting
- 코테
- 구현
- Tree
- simulation
- Counting
- dynamic programming
- bit manipulation
- database
- Binary Tree
- 파이썬
- Class
- java
- SQL
- geometry
- Data Structure
- Number Theory
- greedy
- 자바
- Binary Search
- two pointers
- Matrix
- Stack
- array
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 2696. Minimum String Length After Removing Substrings 본문
코딩테스트 풀이/JAVA
[LeetCode/Easy] 2696. Minimum String Length After Removing Substrings
무지맘 2023. 6. 30. 00:001. Input
1) String s
2. Output
1) s에서 “AB" 또는 "CD”를 계속 없앨 때 나올 수 있는 결과 중 가장 짧은 길이를 반환
3. Constraint
1) 1 <= s.length <= 100
2) s는 영어 대문자로 이루어져 있다.
3) 문자를 없애고 나서 “AB" 또는 "CD"가 생길 수 있다.
4. Example
Input: s = "ABFCACDB" -> Output: 2
설명:
- "AB" 없애기 -> "FCACDB"
- "CD" 없애기 -> "FCAB"
- "AB" 없애기 -> "FC"
- 따라서 2를 반환한다.
5. Code
1) 첫 코드
class Solution {
public int minLength(String s) {
int ab = s.indexOf("AB"), cd = s.indexOf("CD");
while(ab!=-1 || cd!=-1){
if(ab!=-1) s = s.replace("AB","");
if(cd!=-1) s = s.replace("CD","");
ab = s.indexOf("AB"); cd = s.indexOf("CD");
}
return s.length();
}
}
- 36%, 33%
2) 스택을 이용한 코드
class Solution {
public int minLength(String s) {
Stack<Character> stack = new Stack<>();
int i = 0;
while(i<s.length()){
if(stack.empty()) stack.push(s.charAt(i));
else if(stack.peek()=='A' && s.charAt(i)=='B') stack.pop();
else if(stack.peek()=='C' && s.charAt(i)=='D') stack.pop();
else stack.push(s.charAt(i));
i++;
}
return stack.size();
}
}
- 55%, 87%
- 힌트에 스택이 써있는건 다 이유가 있다!
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[프로그래머스/Lv.1] 문자열 내 마음대로 정렬하기 (0) | 2023.06.30 |
---|---|
[프로그래머스/Lv.0] 특이한 정렬 (0) | 2023.06.30 |
[LeetCode/Easy] 2682. Find the Losers of the Circular Game (0) | 2023.06.29 |
[LeetCode/Easy] 2678. Number of Senior Citizens (0) | 2023.06.29 |
[LeetCode/Easy] 2660. Determine the Winner of a Bowling Game (0) | 2023.06.29 |