-- 예전 기록/BOJ

[ BOJ ] 29766 : DKSH 찾기 ( BRONZE 4 ) / C, Python

rejo 2023. 10. 10. 10:50

문제

학교의 로고인 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'))