https://school.programmers.co.kr/learn/courses/30/lessons/12973
연속된 값 빼고 덱에 넣어서 앞뒤 pop 해주면서 찾아주면 되겠다!
#include <iostream>
#include <string>
#include <deque>
using namespace std;
int solution(string s)
{
int answer = -1;
deque<int> dq;
for (int i = 0; i < s.size(); i++)
{
if (i <= s.size() && s[i] == s[i + 1])
{
s[i] = 'X';
s[i++ + 1] = 'X';
}
}
for (int i = 0; i < s.size(); i++)
if (s[i] != 'X')
dq.push_back(s[i]);
while (dq.size())
{
if (dq.front() == dq.back())
{
dq.pop_front();
dq.pop_back();
}
else
return (0);
}
return (1);
}
정확성 테스트
테스트 1 〉 | 통과 (0.01ms, 4.13MB) |
테스트 2 〉 | 통과 (0.25ms, 4.2MB) |
테스트 3 〉 | 실패 (0.85ms, 4.11MB) |
테스트 4 〉 | 실패 (0.78ms, 3.89MB) |
테스트 5 〉 | 실패 (1.04ms, 4.2MB) |
테스트 6 〉 | 통과 (0.90ms, 4.21MB) |
테스트 7 〉 | 통과 (0.80ms, 4.18MB) |
테스트 8 〉 | 통과 (0.79ms, 4.41MB) |
테스트 9 〉 | 통과 (0.01ms, 4.21MB) |
테스트 10 〉 | 실패 (0.01ms, 4.21MB) |
테스트 11 〉 | 통과 (0.01ms, 4.2MB) |
테스트 12 〉 | 통과 (0.01ms, 3.59MB) |
테스트 13 〉 | 통과 (0.01ms, 3.66MB) |
효율성 테스트
테스트 1 〉 | 통과 (7.62ms, 10.1MB) |
테스트 2 〉 | 통과 (2.41ms, 6.02MB) |
테스트 3 〉 | 실패 (8.02ms, 8.49MB) |
테스트 4 〉 | 실패 (7.82ms, 8.48MB) |
테스트 5 〉 | 실패 (8.26ms, 8.55MB) |
테스트 6 〉 | 통과 (8.64ms, 8.55MB) |
테스트 7 〉 | 통과 (8.21ms, 8.54MB) |
테스트 8 〉 | 통과 (7.70ms, 8.86MB) |
음 일단 x표시하는게 비효율적이니까 합쳐보자
#include <iostream>
#include <string>
#include <deque>
using namespace std;
int solution(string s)
{
int answer = -1;
deque<int> dq;
for (int i = 0; i < s.size(); i++)
{
if (i == s.size() - 1) // 마지막
{
dq.push_back(s[i]);
cout << s[i] << '\n';
break ;
}
if (s[i] != s[i + 1]) // 이러면 집어넣어
{
dq.push_back(s[i]);
cout << s[i] << '\n';
}
else
i++;
}
if (dq.size() % 2)
return (0);
while (dq.size())
{
if (dq.front() == dq.back())
{
dq.pop_front();
dq.pop_back();
}
else
return (0);
}
return (1);
}
왜 안되지
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int solution(string s)
{
stack<int> stk;
for (int i = 0; i < s.size(); i++)
{
if (stk.empty())
stk.push(s[i]);
else if (stk.top() == s[i])
stk.pop();
else
stk.push(s[i]);
}
if (stk.empty())
return (1);
return (0);
}
걍 스택으로 풀었다. 문제를 잘못 봤다 여기선 연결된 단어 ex) aabbcc 가 들어왔을 때 날려줘야 하는 건데, 맨 처음에 접근 한 건 abccba이건줄 알았다. 문제를 잘 보자...
'<algorithm> > 프로그래머스' 카테고리의 다른 글
프로그래머스 구명보트 c++ (0) | 2023.05.28 |
---|---|
프로그래머스 영어 끝말잇기 c++ (0) | 2023.05.28 |
프로그래머스 피보나치 수 c++ (0) | 2023.05.25 |
프로그래머스 다음 큰 숫자 c++ (0) | 2023.05.25 |
프로그래머스 숫자의 표현 c++ (0) | 2023.05.25 |