반응형
출처: http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1775&sca=2050
Approach
입력받은 문자열을 차례대로 탐색하면서 'K'와 'I' 문자를 찾습니다.
찾은 지점(idx)에서 idx+1, idx+2번째 위치의 문자가 'O'와 'I' 인 경우 'KOI'와 'IOI'를 각각 만족합니다.
#include <stdio.h>
int ans1, ans2;
char str[10000 + 10];
char oi[] = { 'O', 'I' };
int len(const char* str) {
int ret = 0;
for (;;) {
if (str[ret] == '\0') break;
ret++;
}
return ret;
}
bool check_OI(int idx) {
for (int i = idx + 1; i < idx + 3; ++i) {
// 순차적으로 O와 I 일치 여부
if (str[i] != oi[i - idx - 1]) return false;
}
return true;
}
int main() {
// freopen("input.txt", "r", stdin);
scanf("%s", &str);
// KOI와 IOI를 글자를 찾아야 하므로
// 글자의 시작 인덱스 탐색
for (int i = 0; i < len(str) - 2; ++i) {
if (str[i] == 'K' && check_OI(i)) {
ans1++;
}
if (str[i] == 'I' && check_OI(i)) {
ans2++;
}
}
printf("%d\n", ans1);
printf("%d\n", ans2);
}
반응형
'PS 문제 풀이 > Jungol' 카테고리의 다른 글
[Jungol] 정올 1885 접두사 (0) | 2021.03.14 |
---|---|
[Jungol] 정올 1697 큐(Queue) (0) | 2021.03.14 |
[Jungol] 정올 2595 정수론 몫과 나머지 (0) | 2021.03.13 |
[Jungol] 정올 2788 도약 (0) | 2021.03.13 |
[Jungol] 정올 3115 긴 자릿수 나눗셈 (0) | 2021.03.13 |
댓글