-
백준 9324번: 진짜 메시지문자열(String) 2018. 7. 31. 11:03반응형
https://www.acmicpc.net/problem/9324
1. 문제
배열을 이용하여 해당 문자의 카운트가 3일때 다음 문자는 해당 문자가 나와야 한다. 나오지 않으면 FAKE
2. 알고리즘
키워드 - 문자열
3. 코드
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465#include <iostream>#include <sstream>#include <string>#include <algorithm>#include <functional>#include <vector>#include <list>#include <queue>#include <deque>#include <map>#include <set>#include <stack>#include <math.h>#include <memory.h>using namespace std;#define MAX_SIZE 100#define INF 0x7fffffff#define CENDL "\n"#define ll long longchar table[26];int main() {cin.tie(0);std::ios::sync_with_stdio(false);int n; cin >> n;while(n--) {string s; cin >> s;const int size = s.size();memset(table, 0 , sizeof(table));bool check = false;for (int i=0; i<size; i++) {char code = s[i] - 'A';table[code]++;if (table[code] == 3) {// 문자가 3회 연속 나오고 다음 문자가 해당 문자가 아닌 경우if (i + 1 < size && s[i] != s[i+1]) {check = true;break;// 문자가 3회 연속 나오고 다음 문자가 해당 문자 인 경우 table[code] 를 -1 로 초기화} else if (i + 1 < size && s[i] == s[i+1]) {table[code] = -1;// 문자가 3회 연속 나오고 문자의 끝 인경우} else if (i + 1 >= size) {check = true;break;}}}if (check) {cout << "FAKE" << CENDL;} else {cout << "OK" << CENDL;}}return 0;}cs 반응형'문자열(String)' 카테고리의 다른 글
백준 12605번: 단어순서 뒤집기 (0) 2018.08.04 백준 12780번: 원피스 (0) 2018.08.03 백준 15881번: Pen Pineapple Apple Pen (0) 2018.07.29 백준 15814번: 야바위 대장 (0) 2018.07.29 백준 15813번: 너의 이름은 몇 점이니? (0) 2018.07.29