알고리즘/BAEKJOON
백준 1972번 놀라운 문자열
pureworld
2018. 11. 6. 20:09
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <iostream> #include <string> using namespace std; int main() { string s; while (cin >> s) { //입력 무한 루프 if (s == "*") //*나오면 종료 return 0; bool check = true; for (int p = 1; p < s.length()-1; p++) { char a, b; for (int i = 0; i < s.length()-p; i++) { a = s[i]; b = s[i + p]; if (i + p == s.length() - 1) { continue; } for (int k = i+1; k < s.length() - p; k++) { if (a == s[k] && b == s[k + p]) { // 하나라도 똑같은 배열있으면 바로 놀라운문자가 아니므로 false 입력후 반복문 탈출 check = false; break; } } if (!check) { break; } } if (!check) { break; } } for (int j = 0; j < s.length(); j++) { cout << s[j]; } if (check) { cout << " is surprising." << endl; } if (!check) { cout << " is NOT surprising." << endl; } } return 0; } | cs |
문제 출처:https://www.acmicpc.net/problem/1972
문제 피드백,질문 댓글로 부탁드려요~!