반응형
문자의 서순("UCPC")을 지켜서 세주는 문제였습니다.
풀이방법
1. U일 때는 cnt = 1
2. C가 나왔을 때
2-1. cnt == 1이면 cnt = 2
2-2. cnt == 3이면 cnt = 4
3. P가 나왔을 때 cnt가 2라면 cnt = 3
4. cnt가 4라면 서순을 지켰고 적절히 축약한다면 UCPC를 만들 수 있습니다.
Code
#include <bits/stdc++.h>
using namespace std;
string s;
int cnt;
int idx;
int main(){
getline(cin,s);
for(int i = 0; i < s.size(); i++){
if(s[i]=='U' && !cnt)
cnt = 1;
if(s[i] == 'C'){
if(cnt == 1) cnt = 2;
if(cnt == 3){
cnt = 4;
break;
}
}
if(s[i]=='P')
if(cnt == 2) cnt = 3;
}
if(cnt == 4) cout << "I love UCPC\n";
else cout << "I hate UCPC\n";
}
Test Case
반례를 직접 작성해 보았습니다.
input
UUPPPCCCCUUUPPCC
답
I love UCPC
'Algorithm > String' 카테고리의 다른 글
(C++) - 백준(BOJ) 13163번 : 닉네임에 갓 붙이기 (0) | 2021.02.12 |
---|---|
(C++) - 백준(BOJ) 1871번 : 좋은 자동차 번호판 (0) | 2021.02.10 |
(C++) - 백준(BOJ) 1371번 : 가장 많은 글자 답 (0) | 2021.02.09 |
(C++) - 백준(BOJ) 4388번 : 받아올림 답 (0) | 2021.02.06 |
(C++) - 백준(BOJ) 1225번 : 이상한 곱셉 답 (0) | 2021.02.05 |