문제출처 : https://www.acmicpc.net/problem/19941
code
#include <stdio.h> #include <stdlib.h> char arr[20000] = { NULL }; int main() { int N, K, i, j, count = 0; scanf("%d %d", &N, &K); scanf("%s", arr); for (i = 0; i < N; i++) { if (arr[i] == 'H') { for (j = 1; j <= K; j++) if (arr[i + j] == 'P') { arr[i] = '\0'; arr[i + j] = '\0'; count++; break; } } else if (arr[i] == 'P') { for (j = 1; j <= K; j++) if (arr[i + j] == 'H') { arr[i] = '\0'; arr[i + j] = '\0'; count++; break; } } else continue; } printf("%d", count); return 0; }
문자열 동적할당을 할줄 몰라서 전역변수로 줘버렸다. 코드보다는 알고리즘이 중요하다고는 하지만 코드도 많이 배워야 할 것 같다...