반응형
문제 출처 :
https://www.acmicpc.net/problem/3613
알고리즘 분석 :
문제 해결에 필요한 사항
1. 구현
몇가지 정해진 규칙을 그대로 구현하면 문제를 해결 할 수 있다.
1. 첫 글자가 대문자이거나 _라면 에러
2. i번째 문자가 _일때 그다음 문자가 소문자면 java특성,
소문자가 아닌 다른것이 오면 error
3. i번째 문자가 대문자일때 cpp 특성
4. 아무 경우도 아닌 경우 계속 문자 추가
--결과 출력 과정--
5. 에러일경우 error
6. java와 cpp 특성 모두 가질 경우 error
소스 코드 :
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 49 50 51 52 53 54 55 56 57 | #include <iostream> #include <cstdio> #include <string> using namespace std; int main() { string str; cin >> str; int len = str.size(); bool error = false; bool java = false; bool cpp = false; string tmp = ""; if (('A' <= str[0] && str[0] <= 'Z') || str[0] == '_') error = true; for (int i = 0; i < len; i++) { if (str[i] == '_') { if (i + 1 < len && ('a' <= str[i + 1] && str[i + 1] <= 'z')) { i++; tmp += (str[i] - 'a' + 'A'); java = true; } else error = true; } else if ('A' <= str[i] && str[i] <= 'Z') { tmp += '_'; tmp += (str[i] - 'A' + 'a'); cpp = true; } else tmp += str[i]; } if (error) cout << "Error!" << endl; else if (java && cpp) cout << "Error!" << endl; else cout << tmp << endl; return 0; } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[1062번] 가르침 (3) | 2017.11.28 |
---|---|
[2533번] 사회망 서비스(SNS) (2) | 2017.11.24 |
[11046번] 팰린드롬? (0) | 2017.11.24 |
[10942번] 팰린드롬? (2) | 2017.11.23 |
[1254번] 팰린드롬 만들기 (0) | 2017.11.22 |