코딩테스트/백준_골드 [C++][백준 9935] 문자열 폭발 - [문제] 9935번: 문자열 폭발 (acmicpc.net) 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net [문제 풀이] 문자열에 대해서 배울 수 있는 좋은 문제이다. 나는 빈 string을 하나 더 만들고 해당 문자열에 스택을 사용하듯이 계속 쌓아뒀다. 그러다가 만일 해당 문자열이 bomb와 같다면 해당 문자열 만큼을 새로 만든 문자열에서 지우는 형식으로 진행하였다. * find를 쓸려다가 문자열의 길이가 1,000,000 라서 시간 복잡도에 걸린다고 생각하여서 쓰지 않았다. * string 에서 erase 함수와 substr 함수에 대해서 익혀두자. 코딩 테스트에서 문자열을 자르거나 할 때 굉장히 유용하게 쓰일 수 있다. [코드] #include <iostream> #include <algorithm> #include <vector> #include <stack> #include <string> using namespace std; int main(){ string s; cin>>s; string bomb; cin>>bomb; string s3; for(int i = 0;i<s.size();i++){ s3.push_back(s[i]); if(s3.back() == bomb.back()){ if(s3.size() >= bomb.size()){ if(s3.substr(s3.size() - bomb.size(), bomb.size()) == bomb){ s3.erase(s3.size() - bomb.size(),bomb.size()); } } } } if(s3.size() <= 0){ cout<<"FRULA"<<endl; } else{ cout<<s3<<endl; } return 0; } 공유하기 URL 복사카카오톡 공유페이스북 공유엑스 공유 게시글 관리 구독하기Yoon-1212 Contents 당신이 좋아할만한 콘텐츠 [C++][백준 1300] K번째 수 2022.10.24 [C++][백준 13144] List of Unique Numbers 2022.10.21 [C++][15686] 치킨 배달 2022.10.15 [C++][백준 9251] LCS 2022.10.14 댓글 0 + 이전 댓글 더보기