프로그래밍
백준 14405 피카츄
제가했어요
2021. 2. 5. 18:16
실버 5짜리 문제라 만만하게 봤다가 큰 코 다쳤당.
#include <stdio.h>
#include <string.h>
char str[10000];
int main() {
scanf("%s", str);
int flag = 0;
int len = strlen(str);
if (len == 1) {
flag = 1;
}
else {
for (int i = 0; i < len; i++) {
if (str[i] == 'p') {
if (str[i + 1] != 'i') {
flag = 1;
break;
}
i += 1;
}
else if (str[i] == 'k') {
if (str[i + 1] != 'a') {
flag = 1;
break;
}
i += 1;
}
else if (str[i] == 'c') {
if ((i + 2) >= len || !(str[i + 1] == 'h' && str[i + 2] == 'u')) {
flag = 1;
break;
}
i += 2;
}
else {
flag = 1;
break;
}
}
}
if (flag == 1) {
printf("NO");
}
else {
printf("YES");
}
return 0;
}
1. 항상 이런 문제 즉, 문자열 내에서 문자열을 찾는 문제에서는 배열인덱스를 범어나지 않는지 유의 해야한다.
2. 소스코드에 수정이 가해졌으면, 최대한 많이 그 영향범위를 파악해라.