문제링크
https://www.acmicpc.net/problem/2941
풀이방법
String STL을 사용하여 쉽게 해결 할 수 있다.
모든 크로아티아 알파벳을 Vector에 넣어 놓고 입력 받은 문자열 중에 크로아티아 알파벳이 존재하면 해당 문자열을 1로 변경한다. 최종적으로 1로 변경된 개수를 세면 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 알 수 있다. 참고로 String STL의 내장된 find함수와 replace함수를 통해서 매우 쉽게 해결 할 수 있다.
String 객체에 대해서 잘 모른다면 아래 영상을 참고하자
코드
#include <bits/stdc++.h>
using namespace std;
vector<string> alphas = { "c=","c-","dz=","d-","lj","nj","s=","z=" };
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
string w;
cin >> w;
for (auto alpha : alphas)
{
while (true)
{
int pos = w.find(alpha);
if (pos == string::npos) break;
w.replace(pos, alpha.size(), "1");
}
}
cout << w.size();
}
'CS(Computer Science)지식 > [C++][코딩 테스트] 자료구조 및 알고리즘' 카테고리의 다른 글
[C++] 백준 3613번: Java vs C++ (0) | 2024.02.04 |
---|---|
[C++] 백준 9996번: 한국이 그리울 땐 서버에 접속하지 (0) | 2024.02.04 |
[C++] 백준 1543번: 문서 검색 (0) | 2024.02.04 |
[C++] 백준 5052번: 전화번호 목록 (0) | 2024.02.04 |
[C++] 백준 14425번: 문자열 집함 (0) | 2024.02.03 |