[백준/c++] 10751번: COW

문제 링크 - https://www.acmicpc.net/problem/10751

🌱 문제

🌱 풀이

  • 누적합을 세는 변수는 c, co, cow이다.
  • for문을 통해 string을 탐색한다.
  • 'C'가 나오면 c를 1증가시킨다.
  • 'O'가 나오면 co를 c만큼 증가시킨다. O가 나올때마다 CO를 만들 수 있는 경우가 c개만큼 증가하기 때문이다.
    ex) 예를들어 'CCOOO'가 있으면 0,1인덱스를 지나서 c=2인 상태고 'O'가 나올때마다 CO를 만들 수 있는 경우가 c개만큼 증가하니까 co = 2+2+2 = 6 이다.
  • 마찬가지로 'W'가 나오면 cow를 co만큼 증가시킨다.
    ex) 'CCOOWW'면 인덱스 0,1,2,3까지 co=4이고, W일때마다 cow+=co이므로 최종 cow=8이다.

🌱 코드

//10751번: COW
#include <iostream>
#include <vector>
using namespace std;

int n;
long long c;
long long co;
long long cow;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    cin>>n;
    string s;
    cin>>s;
    for(int i=0; i<s.size(); i++){
        if(s[i]=='C')
        c++;
       else if(s[i]=='O')
        co+=c;
        else
        cow+=co;
    }
    // cout<<"C: "<<c<<"\n";
    // cout<<"O: "<<co<<"\n";
    // cout<<"W: "<<cow<<"\n";

    cout<<cow<<"\n";
}
// cow->1
// cwow ->1
// ccow ->2
// ccooww ->8
// coowww ->6
// ooccow-> 2
// occowoooocoww -?

좋은 웹페이지 즐겨찾기