[ baekjoon ] 2941번 - 크로아티아 알파벳

2023. 5. 14. 17:01baekjoon

반응형

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

 

2941번: 크로아티아 알파벳

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

www.acmicpc.net

 

 

 

 

#include <stdio.h>
#include <string.h>

void swap(int loop, char * ptr);

int main()
{
	char cro[8][4] = {
		"c=",
		"c-",
		"dz=",
		"d-",
		"lj",
		"nj",
		"s=",
		"z="
	};

	char word[101];
	int num = 0;

	scanf("%s", word);

	char* ptr = NULL;

	for (int i = 0; i < 8; i++)
	{
		ptr = strstr(word, cro[i]);

		while (ptr != 0)
		{
			ptr = strstr(word, cro[i]);

			if (i != 2 && ptr != 0)
			{
				swap(2, ptr);
				num++;
			}
			
			else if (i == 2 && ptr != 0)
			{
				swap(3, ptr);
				num++;
			}
		}
	}
	
	for (int i = 0; i < strlen(word); i++)
	{
		if (word[i] != '!')
		{
			num++;
		}
	}

	printf("%d", num);

	return 0;
}

void swap(int loop, char * ptr)
{
	for (int i = 0; i < loop; i++)
	{
		*(ptr + i) = '!';
	}
}

 

cro 이중배열에 크로아티아 문자열과 대체되는 문자열을 담아둔다.

그리고 strstr함수를 통해 입력받은 단어에 크로아티아 문자열이 있다면

swap함수에서 !로 치환하고 num++을 한다.

그리고 반복문을 다 빠져나오고 !가 아닌 문자의 수만 더해주면 된다.

반응형

'baekjoon' 카테고리의 다른 글

[ baekjoon ] 25206번 - 너의 평점은  (2) 2023.05.23
[ baekjoon ] 1316번 - 그룹 단어 체커  (8) 2023.05.15
[ baekjoon ] 27951번 - 옷걸이  (3) 2023.05.13