[코드트리] - 단어 삭제

LSDrug·2024년 7월 17일
0

문제풀이

목록 보기
2/21

단어 삭제 ⭕

문제

https://www.codetree.ai/training-field/search/problems/word-delete?&utm_source=clipboard&utm_medium=text

풀이

이전에 배웠던 find와 erase를 이용하면 쉽게 풀 수 있는 문제였다.

erase 함수는 다음과 같이 사용한다.

stringName.erase(index, wordSize);

이때 주의해야 하는 점은 find와 달리 해당 단어의 주소와 단어의 크기를 필요로 한다.는 것이다.

또한 반복문을 통해서 찾는 게 없을 때까지 반복해야 하는데, 반복을 갱신해주는 위치가 중요하기 때문에 주의하여야 한다.

위치가 잘못될 경우 갱신을 하지 못하고 삭제를 한번만 하는 오류가 생길 수 있으니 충분히 주의 하여야 한다.

코드

코드는 다음과 같다.

#include <bits/stdc++.h>
using namespace std;

int main() {
    string word, w; // 원래 단어와 찾을 단어
    cin >> word >> w;

    int idx = 0; // 기본 주소를 지정한다. 
    while ((idx = word.find(w)) != string::npos) { 
        // while문이 시작할 때 idx를 지정한다. 
        // find를 이용해 쓰레기값이 나올때까지(= 찾는 값이 없을 때)
        word.erase(idx, w.size()); // 삭제 한다. 
    }

    cout << word; // 출력

    return 0;
}

이때, idx갱신을 while문의 안쪽으로 하게되면 제대로 갱신이 되지 않기 때문에 while문을 시작할 때, 갱신을 할 수 있도록 하였다.


profile
마약같은 코딩, 마약같은 코딩러

0개의 댓글

관련 채용 정보