Java vs C++
면접 대비시간 제한1초메모리 제한128 MB
주어진 변수 이름이 자바 스타일인지 C++ 스타일인지 판별해 다른 스타일로 변환하고, 둘 다 아니면 에러를 출력합니다.
문제
Java를 좋아하는 사람과 C++를 좋아하는 사람은 어느 언어가 더 나은지를 놓고 자주 논쟁을 벌인다. 그 논쟁거리 중 하나가 여러 단어로 이루어진 변수명을 표기하는 방식이다. 두 언어는 다음과 같이 서로 다른 규칙을 사용한다.
- Java 방식: 첫 단어는 모두 소문자로 쓰고, 두 번째 단어부터는 각 단어의 첫 글자만 대문자로 쓴다. 단어와 단어는 붙여 쓴다. 예:
javaIdentifier,longAndMnemonicIdentifier,name,hELLO - C++ 방식: 모든 글자를 소문자로 쓰고, 단어와 단어는 밑줄(
_)로 구분한다. 예:c_identifier,long_and_mnemonic_identifier,name,h_e_l_l_o
변수명 하나가 주어지면, 그것이 어떤 방식인지 판별한 뒤 다른 방식으로 바꾸는 프로그램을 작성하자. 즉, C++ 방식이면 Java 방식으로, Java 방식이면 C++ 방식으로 변환한다. 변환 과정에서 단어의 순서는 그대로 유지된다.
올바른 C++ 방식 변수명은 밑줄로 시작하거나 끝나서는 안 되고, 밑줄이 연속으로 나와서도 안 된다(모든 밑줄은 두 단어 사이를 구분해야 한다). 올바른 Java 방식 변수명은 밑줄이 없어야 하고 첫 글자가 소문자여야 한다. 주어진 변수명이 Java 방식도 C++ 방식도 아니라면 오류를 출력한다.
입력
첫째 줄에 변수명이 주어진다. 변수명은 영어 알파벳과 밑줄(_)로만 이루어져 있으며, 길이는 100 이하이다.
출력
주어진 변수명이 Java 방식이면 C++ 방식으로 바꿔 출력한다. C++ 방식이면 Java 방식으로 바꿔 출력한다. 둘 다 아니라면 Error!를 출력한다.