https://www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
풀이
#include <stdio.h>
int main() {
char s[101]; // 문자열
scanf("%s", &s); // 입력
int i;
int cnt = 0; // 단어 수
i = 0;
while (s[i] != '\0') { // 문자열 끝까지 반복
// i번째 문자가 'c'이고 i+1번째 문자가 '='이거나 '-'라면
if (s[i] == 'c' && (s[i + 1] == '=' || s[i + 1] == '-')) {
i++; // 두문자를 한문자로 볼것이니 다음문자(=,-)를 검사할필요 없음
cnt++; // 단어수 +1
}
// i번째가 'd', i+1번째가 'z', i+2번째가 '='일때
else if (s[i] == 'd' && s[i + 1] == 'z' && s[i + 2] == '=') {
i += 2; // 하나의 문자로 봐야하니 '='까지는 검사할필요가 없어짐
cnt++; // 단어수 +1
}
else if (s[i] == 'd' && s[i + 1] == '-') {
i++;
cnt++;
}
else if (s[i] == 'l' && s[i + 1] == 'j') {
i++;
cnt++;
}
else if (s[i] == 'n' && s[i + 1] == 'j') {
i++;
cnt++;
}
else if (s[i] == 's' && s[i + 1] == '=') {
i++;
cnt++;
}
else if (s[i] == 'z' && s[i + 1] == '=') {
i++;
cnt++;
}
// 위 조건에 모두 충족하지 못할때는 일반 알파벳
else cnt++;
i++;
}
printf("%d\n", cnt);
return 0;
}
실버 문제중에 가장 쉬웠다.
'코딩 > 백준 문제 (실버)' 카테고리의 다른 글
[백준/11650/C언어] 좌표 정렬하기 _ 풀이 (0) | 2023.09.01 |
---|---|
[백준/25206/C언어] 너의 평점은 _ 풀이 (0) | 2023.08.29 |
[백준/2563/C언어] 색종이 _ 풀이 (0) | 2023.08.22 |
[백준/1316/C언어] 그룹 단어 체커 _ 풀이 (0) | 2023.08.21 |
[백준/1193/C언어] 분수찾기 _ 풀이 (0) | 2023.08.19 |