문제
아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만, 학생들의 이유가 모두 달랐기 때문에 정확한 이유를 찾을 수 없었다. 정부의 고위직은 뛰어난 학생들이 자꾸 유학을 가는 현상을 매우 불쾌해 했다.
가장 많은 학생들이 유학을 가는 대학교는 영국의 캠브리지 대학교이다. 정부는 인터넷 검열을 통해서 해외로 나가는 이메일의 내용 중 일부를 삭제하기로 했다. 이메일의 각 단어 중에서 CAMBRIDGE에 포함된 알파벳은 모두 지우기로 했다. 즉, 어떤 이메일에 LOVA란 단어가 있다면, A는 CAMBRIDGE에 포함된 알파벳이기 때문에, 받아보는 사람은 LOV로 받는다.
이렇게, 어떤 단어가 주어졌을 때, 검열을 거친 후에는 어떤 단어가 되는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 이 단어는 적어도 3글자이며, 많아야 100글자이다.
출력
입력으로 주어진 단어를 정부가 검열을 하면 어떻게 변하는지를 출력한다. 즉, 단어에서 CAMBRIDGE에 포함된 알파벳을 모두 지운 뒤 출력한다. 항상 정답의 길이는 0보다 크다.
예제 입력 1 복사
LOVA
예제 출력 1 복사
LOV
예제 입력 2 복사
KARIJERA
예제 출력 2 복사
KJ
문제풀이
입력받은 문자열에 CAMBRIDGE에 포함된 알파벳이 있으면 제거하고 출력하면 된다.
어떻게 할까 계속 고민하다가 그냥 간단하게 반복문을 두번 돌리면 되겠다고 생각했다.
입력받은 문자열과 CAMBRIDGE에 공통된 알파벳을 찾기위해 두 문자열을 모두 배열로 만들고 반복문을 두 번 돌려 같은 알파벳이 나오면 해당 값을 0으로 만들면 된다.
출력할때는 0이 아닌 배열의 값만 출력하면 되겠다.
코드
#include <iostream>
#include <string>
using namespace std;
int main(){
string a;
string b = "CAMBRIDGE";
cin >> a;
for(int i=0; i<a.size(); i++){
for(int j=0; j<b.size(); j++){
if(a[i] == b[j]) a[i]=0;
}
}
for(int i=0; i<a.size(); i++){
if(a[i]!=0) cout << a[i];
}
}
'Koala - 7기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/Python] 2908번 상수 (0) | 2022.07.18 |
---|---|
[백준/Python3]7785번 회사에 있는사람 (0) | 2022.07.18 |
[백준/python] 9325번 얼마? (0) | 2022.07.18 |
[백준/C] 2869 달팽이는 올라가고 싶다 (1) | 2022.07.18 |
[백준/c언어]5086번 (0) | 2022.07.17 |