알고리즘/백준

[백준/c++] 15881번: Pen Pineapple Apple Pen

녕이 2022. 7. 9. 12:27
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