baekjoon 2941

윤동환·2022년 12월 8일
0

Algorithm

목록 보기
7/54
post-thumbnail

크로아티아 알파벳

내가 작성한 코드 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))

python의 replace

string.replace(oldvalue, newvalue, count)

python의 replace는 cpp과 조금 다르다.
주어진 문자열을 새로운 문자열로 바꾸는 것은 같지만, 몇개를 치환할지 정할 수 있다.

profile
모르면 공부하고 알게되면 공유하는 개발자

0개의 댓글