ROT13
면접 대비시간 제한1초메모리 제한128 MB
소문자 단어 목록이 주어질 때, w2가 w1의 ROT13 인코딩과 같은 순서쌍 (w1, w2)의 개수를 센다.
문제
바이트랜드 항공기 공장에서 새로운 제트기를 개발했다. 이제 비행기에 숫자로 이름을 붙이는 것은 유행이 지났기 때문에, 경영진은 두 단어로 된 이름을 붙이기로 했다. 잠재 고객의 눈길을 끌기 위해, 이름에는 특별한 성질이 하나 있어야 한다. 바로 ROT13 암호로 변환해도 여전히 말이 되어야 한다는 것이다. 즉, 변환된 이름은 원래 이름과 두 단어의 순서만 다를 뿐 나머지는 같아야 한다.
ROT13 암호는 각 알파벳을 알파벳 순서상 13칸 떨어진 글자로 바꾼다. 정확히는 아래 표를 따른다.
다음을 수행하는 프로그램을 작성하라.
- 표준 입력에서 사용할 수 있는 단어 목록을 읽는다.
- 만들 수 있는 서로 다른 비행기 이름의 개수를 계산한다.
- 그 결과를 표준 출력에 쓴다.
이름은 순서가 있는 두 단어 이며, 두 단어 모두 주어진 목록에 있어야 한다. 이름 전체에 ROT13을 적용하면 가 되고, 이것이 원래 두 단어를 재배열한 것과 같아야 한다. ROT13은 어떤 글자도 자기 자신으로 보내지 않으므로 순서를 그대로 두는 경우는 불가능하고, 결국 조건은 과 같다. 이름 와 은 서로 다른 이름으로 센다.
입력
첫째 줄에 정수 이 주어진다 (). 다음 개의 줄에는 각각 영어 소문자로 이루어진 단어가 하나씩 주어진다. 각 단어는 적어도 한 글자를 가진다. 모든 단어의 길이 합은 을 넘지 않는다.
출력
만들 수 있는 서로 다른 비행기 이름의 총 개수를 한 줄에 정수로 출력한다.