내가 작성한 코드 whit cpp
#include <iostream>
#include <string>
#include <array>
using namespace std;
int main() {
string s;
cin >> s;
string arr[] = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};
int len = sizeof(arr) / sizeof(arr[0]);
int count = 0;
for (int i = 0; i < len; ++i) {
while (1) {
int idx = s.find(arr[i]);
if (idx != string::npos ) {
s.replace(idx, arr[i].length(), "*");
} else {
break ;
}
}
}
cout << s.length() << endl;
return 0;
}
고민한 부분
1. 변경할 문자열을 세는 것 말고 a, e같은 문자는 어떻게 셀까
-> c, d, z, l ,n으로 나누어 순차적 if 문을 걸어주는 것
-> 치환할 문자열들을 찾아 길이가 1인 문자로 치환하는 것
2. 치환할 문자열이 두개 이상 중복해서 나오면 어떻게 처리할까
-> 찾을 문자열이 없을 때까지 반복문을 돌려 수행하자
내가 작성한 코드 whit python
s = input()
arr = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="}
for a in arr:
s = s.replace(a, "*")
print(len(s))
string.replace(oldvalue, newvalue, count)
python의 replace는 cpp과 조금 다르다.
주어진 문자열을 새로운 문자열로 바꾸는 것은 같지만, 몇개를 치환할지 정할 수 있다.