mo1lusca의 블로그
[백준] 2941 크로아티아 알파벳 - C 본문
https://www.acmicpc.net/problem/2941
문제에서 주어진 크로아티아 알파벳들을 하나의 묶음으로 생각해야 하는 문제다.
#include <stdio.h>
#include <string.h>
int croatian(char s[], int i);
int main() {
char s[102];
scanf("%s", s);
int len = strlen(s);
int cnt = 0;
for (int i = 0; i < len; i++) {
i += croatian(s, i);
cnt++;
}
printf("%d", cnt);
return 0;
}
int croatian(char s[], int i) {
if (s[i] == 'c' && s[i + 1] == '=') {
return 1;
}
else if (s[i] == 'c' && s[i + 1] == '-') {
return 1;
}
else if (s[i] == 'd' && s[i + 1] == 'z' && s[i + 2] == '=') {
return 2;
}
else if (s[i] == 'd' && s[i + 1] == '-') {
return 1;
}
else if (s[i] == 'l' && s[i + 1] == 'j') {
return 1;
}
else if (s[i] == 'n' && s[i + 1] == 'j') {
return 1;
}
else if (s[i] == 's' && s[i + 1] == '=') {
return 1;
}
else if (s[i] == 'z' && s[i + 1] == '=') {
return 1;
}
else {
return 0;
}
}
크로아티아 알파벳이라면 for문에서 해당 글자수만큼 검사를 피하기 위해
croatian함수의 return값만큼 for문의 i값을 변경해주었다.
'PS' 카테고리의 다른 글
| [백준] 11729 하노이 탑 이동 순서 - C (0) | 2025.05.01 |
|---|---|
| [백준] 1003 피보나치 함수 - C (0) | 2025.05.01 |
| [백준] 25501 재귀의 귀재 - C (0) | 2025.05.01 |
| [백준] 2903 중앙 이동 알고리즘 - C (0) | 2025.04.14 |
| [백준] 1316 그룹 단어 체커 - C (1) | 2025.04.14 |