728x90
반응형

블로그에 올리는 모든 문제 풀이는 깃허브에 올려져 있습니다.


문제 설명

  • 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력하는 프로그램을 작성하시오. (단, dž 는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.)

풀이 전략

  • 크로아티아 알파벳으로 변경되는 string을 선언해두고 해당 스트링이 있다면 길이가 1인 다른 스트링으로 변환시킨다.
  • 변환된 스트링 길이 출력

소스 코드

#include <iostream>
#include <string>

// 크로아티아 알파벳
using namespace std;
int main()
{
	string str;
	cin >> str;

	int idx;
	string arr[8] = { "c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z=" };
	for (int i = 0; i < 8; ++i)
	{
		while (true)
		{
			idx = str.find(arr[i]);
			if (idx == string::npos)
				break;

			str.replace(idx, arr[i].length(), "a");
		}
	}
	cout << str.length();
}

링크

https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

 

728x90
반응형

'문제풀이 > BOJ' 카테고리의 다른 글

[C++ 백준] 1436 영화감독 숌  (0) 2021.05.31
[C++ 백준] 10250 ACM 호텔  (0) 2021.05.29
[C++ 백준] 2869 달팽이는 올라가고 싶다  (4) 2021.05.27
[C++ 백준] 2839 설탕 배달  (0) 2021.05.26
[C++ 백준] 2292 벌집  (0) 2021.05.25