[백준 2941] 크로아티아 알파벳

이지은·2020년 1월 31일
0

[백준 2941번 문제 링크] https://www.acmicpc.net/problem/2941

문제설명) 크로아티아 알파벳을 입력할 수 없기에 변경해서 입력함.
예) č -> c= , dž -> dz=

입력) 변경된 형태로 들어온 알파벳이 입력된다.
ex) ljes=njak

출력) 입력으로 주어진 단어가 몇 개인지 출력한다.
ex) 6

//cro[]에 크로아티아 알파벳변경 저장하고
//문자열의 문자와 cro[]에 있는 문자열의 첫문자와 비교
#include <iostream>
#include <string>
using namespace std;

string cro[8] = { "c=","c-","dz=","d-","lj","nj","s=","z=" };
string input;
bool cro_b = false;
int cnt = 0;

int main() {
	cin >> input;
	for (int i = 0; i < input.size(); i++) { //입력 문자의 개수만큼  for문 수행
		for (int j = 0; j < 8; j++) { //입력 문자와 크로아티아 문자 비교
			for (int k = 0; k < cro[j].size(); k++) { //크로아티아 해당 문자열의 길이만큼 for문 수행
				if (input[i] == cro[j][k]) { //문자가 같을 경우 입력문자의 다음문자를 확인하기 위해 i 1증가
					i++;
					if (k == cro[j].size() - 1) i--; //맨 첫 for에서 i가 증가되기에 하나 빼줌
				}
				else { //문자가 같지 않을 경우
					if (k) { //하나의 문자라도 같았을 경우, 입력 문자 이동한 것을 빼주기
						i -= k;
					}
					break;
				}
			}
		}
		cnt++;
	}
	cout << cnt<<"\n";
	system("pause");
	return 0;
}

0개의 댓글