🖥️ CS/Baekjoon Algorithms

#1316번 그룹단어체커 (c++)

한국의 메타몽 2020. 2. 11. 01:09
#include <iostream>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int test = 0;
    int ans = 0 ;
    bool check1 = false;
    bool check2 = false;
    cin >> test;
    
    for(int i=0; i<test; i++){
        string s;
        cin >> s;
        
        if(s.size()<=2) ans++;
        else{
            for(int a=0; a<s.size()-1; a++){
                check1 = false;
                check2 = false;
                for(int b=a+1; b<s.size(); b++){
                    if(s[a]!=s[b]) check2 = true;
                    else if(s[a]==s[b]&&check2==true){
                        check1 = true; // 이 케이스면 그룹단어 실패
                        break;
                    }
                }
                if(check1==true&&check2==true) break;                
                if(a==s.size()-2) ans++;
            }
        }
    }   
    cout << ans << "\n";
    
    return 0;
}

bool문으로 조건 2개를 세워서, 그룹단어 조건이 실패하면 둘다 true로 만들고

true면 정답 값을 증가시키지 않고 2중 for문을 종료시키는걸로 세웠다. 

더 간단하게 짜고싶었는데 생각만큼 예쁘게 코드가 나오진 못했다. 

간만에 다중 for문을 짜다보니 break구문에서 헷깔린 점도 있었다. 

 

성실히 공부하자. 

'🖥️ CS > Baekjoon Algorithms' 카테고리의 다른 글

#2839번 설탕 배달 (c++)  (0) 2020.02.12
#1712번 손익분기점 (c++)  (0) 2020.02.12
#1065번 한수 (c++)  (0) 2020.02.08
#4673번 셀프넘버 (c++)  (0) 2020.02.08
#1008번 A/B (c++)  (0) 2020.01.14