이 문제 역시! stl 라이브러리를 어떻게 잘 쓰느냐..로 갈리는 문제였다.
stl 공부도 꾸준히 하자!
내가 작성한 코드
// 백준 2941번 - 크로아티아 알파벳
#include <iostream>
#include <string>
using namespace std;
int main(){
string a;
int cnt=0;
cin >> a;
for(int i=0; a[i] != '\0'; i++){
if(a[i] == 'c'){
if(a[i+1] == '=') i++;
else if(a[i+1] == '-') i++;
}
else if(a[i] == 'd'){
if(a[i+1] == 'z' && a[i+2] == '=') i+=2;
else if(a[i+1] == '-') i++;
}
else if(a[i]=='l' && a[i+1]=='j') i++;
else if(a[i]=='n' && a[i+1]=='j') i++;
else if(a[i]=='s' && a[i+1]=='=') i++;
else if(a[i]=='z' && a[i+1]=='=') i++;
cnt++;
}
cout << cnt;
}
// 백준 2941번 - 크로아티아 알파벳
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main(){
vector<string> croa = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};
int index;
string str;
cin >> str;
for(int i=0; i<croa.size(); i++){
while(1){
index = str.find(croa[i]);
//크로아티아 문자열이 없을 경우
if(index == -1) break;
//크로아티아 문자열 -> '!'으로 바꾸기
str.replace(index, croa[i].length(), "!");
}
}
cout << str.length();
}
++ string.replace(string.find(find_str), find_str.length(), replece_str);
아예 이렇게 작성 할 수도 있다.
최종적으로 문자열의 길이(모두 한 단어로 구성됨)를 출력하면 정답!