[백준/C++] 2789 - 유학 금지

orangesnail·2025년 7월 26일

백준

목록 보기
117/169

https://www.acmicpc.net/problem/2789


구현하기

이 문제를 구현하기 위해서는 두 가지를 알아야 한다.

  1. 단어를 순회하며 내에서 특정한 글자인지 아닌지를 검사하는 법
  2. 단어에서 특정 글자를 삭제하는 법

각각의 방법은 다음과 같다.
(문자열 순회는 i = 0부터 단어의 길이만큼 돌아가는 for문을 만들면 된다.)

  1. if (target.find(word[i]) == string::npos) 를 사용한다. 여기서 find(문자) 함수는 문자가 존재한다면 해당 문자의 인덱스를 리턴하고, 없다면 string::npos라는 특별한 값을 리턴한다.
  2. c++에서는 파이썬과 다르게 delete 문법이 존재하지 않는다. 따라서 for문을 돌며 CAMBRIDGE에 해당하지 않는 글자들을 모아서 새로운 문자열로 만들어야 한다.

전체 코드

#include <iostream>
#include <string>
using namespace std;

int main() {
    string word;
    cin >> word;

    string target = "CAMBRIDGE";
    string res = "";

    for (int i = 0; i < word.length(); i++) {
        if (target.find(word[i]) == string::npos)
            res += word[i];
    }

    cout << res << endl;
    return 0;
}
profile
초보입니다. 피드백 환영합니다 😗

0개의 댓글