728x90
https://www.acmicpc.net/problem/15881
15881번: Pen Pineapple Apple Pen
여러 개의 사과, 파인애플, 그리고 펜이 일렬로 세워져 있다. 이 물건들의 순서를 바꾸지 않고 옆에 있는 물건끼리 연결했을 때, 펜-파인애플-애플-펜을 몇 개나 만들 수 있을지 세어보자. 단, 펜,
www.acmicpc.net
물건들의 순서를 바꾸지 않고 옆에 있는 물건끼리 연결했을 때, 펜-파인애플-애플-펜을 몇 개나 만들 수 있을지 세어보자.
펜, 파인애플, 애플, 펜 순서로 연결된 네 물건만 인정
사과 A 파인애플 P 펜 p
이 문제를 처음엔 하나씩 문자를 확인하는 방식으로 생각했는데, 더 간단하게 문자열을 잘라서 하면 된다는 것을 깨달았다.
substr 함수를 사용하면 된다. pPAp 문자열의 길이가 4이므로 s.substr(i, 4) [i = 시작 인덱스]
이때, 만약 pPAp 문자열을 발견했을 시 i를 +3 해줘야 한다.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int n, cnt = 0;
string s;
cin >> n >> s;
for(int i=0; i<n; i++){
if(s.substr(i, 4) == "pPAp"){
cnt++;
i += 3;
}
}
cout << cnt << '\n';
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 4796번: 캠핑 (0) | 2022.07.09 |
---|---|
[백준/c++] 1439번: 뒤집기 (0) | 2022.07.09 |
[백준/c++] 18238번: ZOAC 2 (0) | 2022.07.09 |
[백준/c++] 22864번: 피로도 (0) | 2022.07.09 |
[백준/c++] 14720번: 우유 축제 (0) | 2022.07.08 |