Time Limit: 3s
Memory Limit: 128MB
Java와 C++에는 여러가지 차이점이 존재하는데, 이 중 하나가 변수작명법이다. 특히 여러 단어로 이루어진 변수의 경우 그 차이점이 명확하게 존재한다. (이 문제에서는 단어는 알파벳으로 이루어진 길이가 1 이상인 문자열을 말한다.)
Java에서는 다음과 같은 규칙을 따른다.
첫 단어는 소문자로 시작하고 그 다음 단어들은 대문자로 시작한다.
예) javaIdentifier, longAndMnemonicIdentifier, name, nEERC
C++에서는 변수명에 오직 소문자만 사용한다.
이 때, 단어의 구분은 '_'를 이용한다.
예) c_identifier, long_and_mnemonic_identifier, name (이 경우는 Java와 C++ 모두 사용할 수 있다), n_e_e_r_c
여러분이 Java 사용자와 C++ 사용자 모두를 만족시키기 위한 번역기를 만든다고하자.
물론 변수도 이에 맞춰서 변해야 할 것이다.(그렇지 않으면 아무도 사지 않을 것이다.)
우선 완성해야 할 부분은 주어진 변수가 C++형인지 Java형인지 판별하여 올바르게 변환하는 것이다. 완성해보자.
이상한 변수명인 경우에는 에러메시지를 출력한다.
변수에는 그 나름의 의미가 담겨져있을테니 글자의 순서라던가 등은 변환되어선 안된다. 변환은 대소문자변환과 '_'의 유무만 변하여야 한다.
입력파일은 한 줄에 한 변수씩 여러 테스트케이스가 존재한다.
영어 알파벳과 '_'로 이루어져 있으며 길이가 100을 넘지 않는다
각 테스트케이스에 대해 Java 변수명일 경우 C++형으로, C++ 변수명일 경우 Java형으로 출력한다.
해당하는 것이 없다면 "Error!"를 출력한다.
long_and_mnemonic_identifier anotherExample i bad_Style
longAndMnemonicIdentifier another_example i Error!
Regionals 2006, Europe - Northeastern