문제

학교의 로고인 DKSH는 Dankook University Software High School의 약자이다.
D, K, S, H로만 이루어진 문자열이 주어진다. 이 문자열에서 DKSH가 몇 번 나타나는지 구해보자.
입력
첫째 줄에 문자열이 입력된다. 문자열의 길이는 1,000을 넘지 않는다.
출력
첫째 줄에 입력된 문자열에서 DKSH가 몇 번 나타나는지 출력한다.
풀이 과정
문자열을 처음부터 끝까지 탐색하면서, DKSH 가 나타나는 횟수를 센다.
C
#include <stdio.h>
#include <string.h>
int main(void) {
char str[1001];
scanf("%s", str);
int cnt = 0;
for (int i = 0; i < strlen(str) - 3; i++) {
// 문자열은 0부터 strlen(str) - 1 까지 문자를 가진다.
// 뒤에 남은 3글자, 2글자, 1글자... 에서 DKSH가 나오진 않으므로 ( 4글자기에 )
// 마지막 4글자까지 탐색하고 종료하기 위해 조건을 i < strlen(str) - 3 으로 잡는다.
if (str[i] == 'D' && str[i+1] == 'K' && str[i+2] == 'S' && str[i+3] == 'H') cnt += 1;
}
printf("%d", cnt);
return 0;
}
Python
string = input()
print(string.count('DKSH'))
'-- 예전 기록 > BOJ' 카테고리의 다른 글
[ BOJ ] 17863 : FYI ( BRONZE 4 ) / C, Python (0) | 2023.10.10 |
---|---|
[ BOJ ] 10987 : 모음의 개수 ( BRONZE 3 ) / C, Python (0) | 2023.10.10 |
[ BOJ ] 23803 : 골뱅이 찍기 - ㄴ ( BRONZE 3 ) / C, Python (0) | 2023.10.10 |
[ BOJ ] 23804 : 골뱅이 찍기 - ㄷ ( BRONZE 3 ) / C, Python (0) | 2023.10.10 |
[ BOJ ] 1225 : 이상한 곱셈 ( BRONZE 2 ) / C, Python (0) | 2023.10.10 |