https://www.acmicpc.net/problem/2941
위의 문제를 풀어보도록 하겠다.
입력받은 크로아티아 단어가 몇개의 크로아티아 알파벳으로 이루어져 있는지 구하는 것
크로아티아 문자는 여러개의 알파벳(문자)로 이루어질 수 있다.
단어 | 문자 | 문자 갯수 |
---|---|---|
ljes=njak | lj, e, s=, nj, a, k | 6개 |
ddz=z= | d, dz=, z= | 3개 |
nljj | n, lj, j | 3개 |
c=c= | c=, c= | 2개 |
dz=ak | dz=, a, k | 3개 |
import java.util.Scanner;
class Main {
static String[] strArr = {"c=", "c-", "d-", "lj", "nj", "s=", "z=", "dz="};
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int tot = 0;
for (int i = 0; i < str.length(); i++) {
i += test(str, i);
tot++;
}
System.out.println(tot);
}
public static int test(String str, int idx) {
String subStr;
if(idx+1 < str.length()) {
subStr = str.substring(idx, idx + 2);
for (int j = 0; j < strArr.length - 1; j++) {
if (subStr.equals(strArr[j]))
return 1;
}
}
if(idx+2 < str.length()) {
subStr = str.substring(idx, idx + 3);
if (subStr.equals(strArr[strArr.length - 1]))
return 2;
}
return 0;
}
}