728x90
반응형
문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, string letter) {
string answer = "";
for(int i = 0 ; i < my_string.size(); i++){
if(my_string[i] != letter[0]) {
answer += my_string[i];
}
}
return answer;
}
생각의 전환이 필요하다. (정답을 검색해버렸다)
검색해버린 이유 : 구글에서 사용하라던 erase, std::remove 썼는데 안돼서...
letter과 같은 문자를 삭제하라
>>>letter과 다른 문자를 출력하라
으아아아아아아악!!!
전에 다른 곳에서 사용했던 방법같은데 너무너무 아쉬웠다...ㅠ
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string my_string, string letter) {
my_string.erase(remove(my_string.begin(),my_string.end(), letter[0]),my_string.end());
return my_string;
}
다른 사람 풀이를 보면 너무 속이 시원하다. 그냥 내가 알고싶었던 방향의 풀이를 알려주니까..
.erase(remove(배열.begin(), 배열.end(), letter[0]), 배열.end.());
여기서 letter[0]은 삭제할 문자라는건 알겠는데 왜 저기 들어가있는지 모르겠다.
#include <string>
#include <vector>
using namespace std;
string solution(string my_string, string letter) {
string answer = "";
for(int i = 0; i < my_string.size(); i++)
{
if(my_string[i] == letter[0])
{
my_string.erase(my_string.begin() + i);
i--;
}
}
return my_string;
}
그래..!!! 이거야!!!!!! ㅜㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
다른 사람의 풀이를 보며 슬퍼진다... 아마 키보드는 지문인식 되는것이다
이제 알아냈으니까 됐지뭐..
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string my_string, string letter) {
string s= my_string;
for (char c:letter)
{
s.erase(remove(s.begin(),s.end(),c),s.end());
}
return s;
}
이렇게 사용할 수 있다고 한다.
이제는 다음부터 반드시 잘 사용할것
#include <algorithm>도 추가해주어야한다.
erase().
remove().
728x90
반응형
'프로그래머스 C++ > Level.0' 카테고리의 다른 글
프로그래머스 C++ Level. 0 문자열로 변환 (0) | 2023.04.26 |
---|---|
프로그래머스 C++ Level. 0 중앙값 구하기 (0) | 2023.04.25 |
프로그래머스 C++ Level. 0 삼각형의 완성조건(1) (0) | 2023.04.11 |
프로그래머스 C++ Level. 0 배열의 유사도 (0) | 2023.04.10 |
프로그래머스 C++ Level. 0 최댓값 만들기(1) (0) | 2023.04.03 |