11. 짝지어 제거하기
https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
알파벳 소문자로 구성된 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 짝을 찾은 다음에는 그 둘을 제거한 뒤 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때 짝지어 제거하기를 성공적으로 수행할 수있는지 반환하는 함수를 완성하세요. 성공적으로 수행할 수 있으면 1을, 아니면 0을 반환해주면 됩니다. 예를 들어 문자열 S가 baabaa라면
- baabaa -> bbaa -> aa
순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다.
제약조건
문자열의 길이 : 1,000,000 이하의 자연수
문자열은 모두 소문자로 이루어져 있습니다.
입출력의 예
s | result |
"baabaa" | 1 |
"cdcd" | 0 |
내 답안
import java.util.*;
class Solution
{
public int solution(String s)
{
char[] carr = s.toCharArray();
int result = 0;
Stack<Character> ori = new Stack<>();
for(char a : carr){
ori.push(a);
}
Stack<Character> st = new Stack<>();
for(char a : ori){
if(st.isEmpty()){
st.push(a);
}else{
if(a==st.peek()){
st.pop();
}else{
st.push(a);
}
}
}
if(st.size()==0){
result +=1;
}
return result;
}
}
반응형
'컴퓨터 과학 > 💯 코테' 카테고리의 다른 글
코딩 테스트 합격자 되기 | 문제13. 크레인 인형 뽑기 게임 (1) | 2024.11.12 |
---|---|
코딩 테스트 합격자 되기 | 문제12. 주식 가격 (1) | 2024.11.10 |
코딩 테스트 합격자 되기 | 문제10. 괄호 회전하기 (0) | 2024.11.09 |
코딩 테스트 합격자 되기 | 문제9. 10진수를 2진수로 변환하기 (0) | 2024.11.09 |
코딩 테스트 합격자 되기 | 문제8. 올바른 괄호 (0) | 2024.11.09 |