티스토리 뷰

반응형

https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 구현
  • 문자열

 


 

⊙ 문제 접근 과정

 

vector와 boolean을 이용하여 문제를 풀었다. vector를 적극 활용했다.


 

⊙ 문제 풀이

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int N;
int cnt =0;
string word;
vector<char> temp;
bool flag=false;

void reset() {
    temp.clear();
    flag=false;
}

int main() {
    cin >> N;

    for(int i=0;i<N;i++) {
        cin >> word;
        for(int j=0;j<word.size();j++) {
            if(find(temp.begin(),temp.end(),word[j]) != temp.end()) {
                if(temp.back() != word[j]) {
                    flag=true;
                    break;
                }
            } else {
                char x = word[j];
                temp.push_back(x);
            }
        }
        if(!flag) cnt++;
        reset();
    }
    cout << cnt;
}

⊙ 결과

 


⊙ 마무리

 

 

STL Vector 굉장히 유용하다

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함