티스토리 뷰
반응형
풀이 과정을 떠올리는 건 쉬웠지만 시간이 너무 오래 걸리는 코드를 짜는 바람에 효율성 테스트 통과를 하지 못해서...
힌트 참고해서 다른 방법으로 다시 짜서 통과한 문제 ㅠ.ㅠ
문제의 조건
1. string s가 주어짐
2. 앞뒤로 두개가 같은 알파벳이면 제거할 수 있다.
같은 알파벳 두개를 제거하고 나면 남은 것들끼리 이어붙여서 또 짝지어 두개가 같으면 제거하고
남은것들끼리 이어붙이고.... 를 반복해서
모든 알파벳이 제거되면 1
제거되지 않으면 0 리턴
#include <iostream>
#include<string>
#include <algorithm>
using namespace std;
int solution(string s)
{
int answer = -1;
vector<char> tmp;
for (int i = 0; s.length() > i; i++)
{
if (!tmp.empty() && tmp.back() == s[i])
tmp.pop_back();
else
tmp.push_back(s[i]);
}
if (tmp.empty()) answer = 1;
else answer = 0;
return answer;
}
반응형
'알고리즘 문제 풀이' 카테고리의 다른 글
[C++] 프로그래머스 문자열 압축 풀이 (0) | 2021.10.12 |
---|---|
[C++] 프로그래머스 행렬 테두리 회전하기 풀이 (0) | 2021.10.12 |
[C++] 프로그래머스 더 맵게 풀이 (0) | 2021.10.11 |
[C++] 프로그래머스 기능개발 풀이 (0) | 2021.10.11 |
[C++] 프로그래머스 조이스틱 풀이 (0) | 2021.10.10 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- c언어
- DFS
- greedy
- 스위프트플레이그라운드
- dp
- 컴퓨터사이언스
- 프로그래밍
- 그리디
- 깊이우선탐색
- 문제풀이
- 캐나다
- 프로그래머스
- BFS
- 아이패드
- 애플
- C언어기초
- 알고리즘
- hackerrank
- 하드웨어
- 컴퓨터공부
- 영어공부
- 캐나다생활
- 너비우선탐색
- 기초
- 코딩공부
- 백준
- 다이나믹프로그래밍
- 컴퓨터
- 해커랭크
- c++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함