• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Programming challange crypt_kicker
 

Programming challange crypt_kicker

on

  • 330 views

programming Challenges. Cryptkicker problem explanation.

programming Challenges. Cryptkicker problem explanation.

Statistics

Views

Total Views
330
Views on SlideShare
330
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Programming challange crypt_kicker Programming challange crypt_kicker Presentation Transcript

    • 아꿈사 http://café.naver.com/architect1 문현진 arnold.spring@gmail.com
    • 문제 설명 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
    • • 암호를 복호화 할 수 있는 테이블을 만들어야 한다.• 주어진 데이터가 하나도 없으므로, 하나씩 넣어보는 수밖에 없다.• 그렇지만 암호화 + 복호화 모두 가능해야 하므로 테이블에서 하나의 알파벳은 하나의 알파벳으로만 대응가능한 사전 형태로 만들수 있다.
    • • 암호를 복호화 할 수 있는 테이블을 만들어야 한다• >> mappingDict = dict()
    • 정상 조건을 검사하는 방법은 매핑 테이블에 대입 했을때 암호 한 글자에 복호화된 글자 하나가 매핑 가능 하면 된다.• 주어진 데이터가 하나도 없으므로, 하나씩 넣어보는 수밖에 없다. bjvg = dick hxsn = jane qymm = puff bjvg = jane hxsn = puff qymm = spot hxsn = spot qymm = yertle
    • • 주어진 데이터가 하나도 없으므로, 하나씩 넣어보는 수밖에 없다는것을 깨달음 hxsn = jane qymm = puff End! hxsn = puff qymm = spot hxsn = spot qymm = yertle 모든 암호를 제대로 복호화 할 수 있으면 올바른 매핑 테이블이라고 할 수 있음. 따라서 종료 조건에 도달 했을 때의 테이블이 정답.
    • • 암호화 + 복호화 모두 가능해야 하므로 테이블에서 하나의 알파벳은 하나의 알파벳으로만 대응가능한 사전 형태로 만들수 있다.
    • 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()
    • 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
    • Code is on wiki.