PC/UVa ID : 110204/843

사설
.. 문제를 이해 하는데 엄청난 노력이 필요했다. 일반적을 나는 짜증이 나면, 단잠(30~ 40분)을 자는 스타일인데, 이 문제를 풀기 위해서 3번은 잠을 청해야 했기에, 얼마나 문제를 이해하고자 노력했는지 스스로가 알 수 있었다.

개요

아주 간략하게 설명하자면, 암호화된 문자를 해독하여, 표준출력을 하라는 내용이다. 여기서 다루는 암호의 종류는 "알파벳 문자 한개를 다른 알파벳 문자 한개로 치환하는 암호"로 흔히 "단문자 암호"라 불리는 암호이다.

그러므로 문제는 임의의 단문자 암호화가 된 문자들이 입력되었을 때, 이 단문자 암호를 깨고, 본래의 문자가 출력되게 하라는 것이다. 임의의 단문자 암호화는 "입력 하는 사람"만 알고 있을 뿐이라는 것이다.

여기서 전제조건을 하나 추가하면, 암호화된 텍스트의 본래 텍스트는 주어진 사전에 있는 단어만을 사용해야 한다는 것이다.


입력

  1. 사전에 등록될 단어들의 수를 정수 n에 입력 받는다. 이때 n은 1000 이하여야 한다.
  2. 1번에 의해 받은 n개의 단어들의 수 만큼 한줄에 한 단어씩 입력받는다. 이때 단어의 길이는 16자 이하여야 한다.
  3. 2번이 끝나면, 임의의 단문자 암호화된 텍스트를 입력받는다. 이때 임호화된 텍스트는 소문자, 스페이스만 들어가며, 80자 이하여야 한다.
  4. 공백이 입력될 때까지 3번을 반복하며 입력받는다.

출력

  1. 입력의 3번이 끝나면, 바로 복호화가된 문자들을 출력한다. 입력의 3번이 반복될때마다 복호화된 문자들을 계속 출력하기만 하면 된다.
관련링크
  1. http://online-judge.uva.es/p/v8/843.html
마땅히 떠오르는 코드가 없으므로, 실제로 종이와 연필로 복호화를 해보는 연습을 해보고 요령이 생기면, 코드화 할 수 있을 것이라고 생각 한다.


posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. Favicon of https://www.ikpil.com 농사를 짓는 게임 프로그래머 최익필 2009.11.24 03:00 신고  Addr  Edit/Del  Reply

    정리 끝 다음 문제로 넘어가자