예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다.
예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에 없는 알파벳은 한 글자씩 센다.
입력
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다.
출력
입력으로 주어진 단어가 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다.
풀이1
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int len = str.length();
int count = 0;
for (int i = 0; i < len; i++) {
char ch = str.charAt(i);
if (ch == 'c') { // 현재 값이 c이고
if (i < len - 1) { // 다음 배열의 칸이 있을 때
if (str.charAt(i + 1) == '=') { // 다음 값이 = 이면
i++; // i를 증가 시키세요
} else if (str.charAt(i + 1) == '-') { // 그게 아니라 다음 값이 - 이면
i++; // i를 증가 시키세요
}
}
}
else if (ch == 'd') { // 현재 값이 d이고
if (i < len - 1) { // 다음 배열의 칸이 있을 때
if (str.charAt(i + 1) == 'z') { // 다음 값이 z 이면
if (i < len - 2) { // 다다음 배열의 칸이 있을 때
if (str.charAt(i + 2) == '=') { // 다다음 값이 = 이면
i += 2; // i를 2 증가 시키세요 ( dz- 인 경우 )
}
}
}
else if (str.charAt(i + 1) == '-') { // 그게 아니라 다다음 값이 - 이면
i++; // i를 증가 시키세요 ( d- 인 경우 )
}
}
}
else if (ch == 's') {
if (i < len - 1) {
if (str.charAt(i + 1) == '=') {
i++;
}
}
}
else if (ch == 'z') {
if (i < len - 1) {
if (str.charAt(i + 1) == '=') {
i++;
}
}
}
else if (ch == 'l') {
if (i < len - 1) {
if (str.charAt(i + 1) == 'j') {
i++;
}
}
}
else if (ch == 'n') {
if (i < len - 1) {
if (str.charAt(i + 1) == 'j') {
i++;
}
}
}
// if와 else에 걸리게 되면 i값을 증가해서 그만큼 i의 범위를 줄임 => count할 수 있는 양을 줄임
count++;
}
System.out.println(count);
}
}
풀이2
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str[] = {"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="};
String st = sc.nextLine();
for(int i=0; i<str.length; i++) { // 배열의 길이
if(st.contains(str[i])) // contains() : 해당 문자열이 존재하면 true 아니면 false
st = st.replace(str[i], "!"); // replace([기존문자], [바꿀문자])
}
System.out.println(st.length());
}
}
댓글