프로그래머스 Lv2 - 짝지어 제거하기
2022. 11. 9. 13:37ㆍ코딩테스트/프로그래머스
오늘도 아침 8시에 기상하여 2문제를 풀어보았다. 하지만 어제 급하게 이력서와 자소서를 쓰다보니 새벽 4시에 잠들어
아침에 컨디션이 않좋은 상태로 문제를 풀려니 잘 풀리지가 않음.
문제링크
https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
처음엔 문자를 처음부터 끝까지 순회하면서
baabaa -> bb -> 성공
이런식으로 여러번 순회했다 . 그랬더니 효율성테스트에서 광탈을 함.
이후 stack을 써야한다는 걸 알게되고 stack을 사용해서 수정했음
코드
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
|
#include <iostream>
#include <string>
#include <stack> //스택추가해줌
using namespace std;
int solution(string s)
{
int answer = 0;
stack<char> st;
for(int i = 0 ; i< s.size();i++)
{
if(st.size() > 0 && st.top() == s[i])
//stack이 비어있지않고 문자가 같다면 st.pop()하여 st.top()의 데이터를 삭제 st.pop();
else
st.push(s[i]); // 아닐경우 st에 추가해주었다
}
if(st.empty()) //비어있으면 성공
answer = 1;
return answer;
}
|
cs |
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 LV2 - 구명보트 (0) | 2022.11.10 |
---|---|
프로그래머스 LV2 - 영어끝말잇기 (0) | 2022.11.09 |
프로그래머스 LV - 이진 변환 반복하기 (0) | 2022.11.04 |
프로그래머스 Lv2 - 올바른 괄호 (0) | 2022.11.04 |
프로그래머스 LV2 - (C++) JadenCase 문자열 만들기 (0) | 2022.11.03 |