• Like
Programming challange crypt_kicker
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Programming challange crypt_kicker

  • 287 views
Published

programming Challenges. Cryptkicker problem explanation.

programming Challenges. Cryptkicker problem explanation.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
287
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 아꿈사 http://café.naver.com/architect1 문현진 arnold.spring@gmail.com
  • 2. 문제 설명 6 and dick jane puff spot yertle bjvg xsb hxsn xsb qymm xsb rqat xsb pnetfn dick and jane and puff and spot and yertle
  • 3. • 암호를 복호화 할 수 있는 테이블을 만들어야 한다.• 주어진 데이터가 하나도 없으므로, 하나씩 넣어보는 수밖에 없다.• 그렇지만 암호화 + 복호화 모두 가능해야 하므로 테이블에서 하나의 알파벳은 하나의 알파벳으로만 대응가능한 사전 형태로 만들수 있다.
  • 4. • 암호를 복호화 할 수 있는 테이블을 만들어야 한다• >> mappingDict = dict()
  • 5. 정상 조건을 검사하는 방법은 매핑 테이블에 대입 했을때 암호 한 글자에 복호화된 글자 하나가 매핑 가능 하면 된다.• 주어진 데이터가 하나도 없으므로, 하나씩 넣어보는 수밖에 없다. bjvg = dick hxsn = jane qymm = puff bjvg = jane hxsn = puff qymm = spot hxsn = spot qymm = yertle
  • 6. • 주어진 데이터가 하나도 없으므로, 하나씩 넣어보는 수밖에 없다는것을 깨달음 hxsn = jane qymm = puff End! hxsn = puff qymm = spot hxsn = spot qymm = yertle 모든 암호를 제대로 복호화 할 수 있으면 올바른 매핑 테이블이라고 할 수 있음. 따라서 종료 조건에 도달 했을 때의 테이블이 정답.
  • 7. • 암호화 + 복호화 모두 가능해야 하므로 테이블에서 하나의 알파벳은 하나의 알파벳으로만 대응가능한 사전 형태로 만들수 있다.
  • 8. def main(): strresult = "*" retval = None edword = ed.pop() retval = decode(edword) if retval == False: print strresult else: for edword in ed_: print decodewords(mapping,edword)main()
  • 9. def decode(edword): if len(ed) == 0: wordmapping(mapping, rd[0], edword) print touch end -- ed is empty print mapping return True for rdword in rd: if wordmapping(mapping, rdword, edword) == True: rd.remove(rdword) newedword = ed.pop() result = decode(newedword) if result == False: ed.append(newedword) rd.append(rdword) else: return Truereturn False
  • 10. Code is on wiki.