https://www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
크로아티아 알파벳이라는 문자를 예전에는 그대로 쓸 수 없었는데, 이 문제를 피하기 위해 변형하여 썼다고 한다. 이 변형된 알파벳을 크로아티아 알파벳으로 개수를 세는 문제.
3번째로 푸는 실버티어의 문제이다. 이번에도 어렵겠지 싶었는데, 코드를 더럽게 짤 각오를 하고 하니 할만 했다.(솔직히 개선해야 할 것 같긴 하다.)
목록에 있는 변형된 크로아티아 알파벳을 조건문에 대입하여 해당하는 크로아티아알파벳이 나오는 경우 비교할 배열의 인덱스를 조절하는 방법 풀었다.
#include <stdio.h>
#include <string.h>
int main () {
char a[101];
int word = 0;
int i = 0;
scanf("%s", a);
while (i < strlen(a)) {
if (a[i] == 'c' && a[i+1] == '=') {
i += 2;
} else if (a[i] == 'c' && a[i+1] == '-') {
i += 2;
} else if (a[i] == 'd' && a[i+1] == 'z' && a[i+2] == '=') {
i += 3;
} else if (a[i] == 'd' && a[i+1] == '-') {
i += 2;
} else if (a[i] == 'l' && a[i+1] == 'j') {
i += 2;
} else if (a[i] == 'n' && a[i+1] == 'j') {
i += 2;
} else if (a[i] == 's' && a[i+1] == '=') {
i += 2;
} else if (a[i] == 'z' && a[i+1] == '=') {
i += 2;
} else {
i++;
}
word++;
}
printf("%d", word);
return 0;
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 1712번 C언어 풀이 (0) | 2021.08.16 |
---|---|
백준 1316번 C언어 풀이 (0) | 2021.08.14 |
백준 5622번 C언어 풀이 (0) | 2021.08.13 |
백준 2908번 C언어 풀이 (0) | 2021.08.12 |
백준 1152번 C언어 풀이 (0) | 2021.08.11 |