[Python Challenge] 파이썬 챌린지 1
Python Challeng 문제풀이
* Python Challeng는 프로그래밍 언어인 파이썬 관련 문제입니다.
* 개인적인 문제풀이로 해답을 보시기 전에 직접 풀어보시기를 권해드립니다.
* 때로는 추가 모듈이 필요합니다. 모든 것은 인터넷에서 무료로 다운로드 할 수 있습니다.
[Python Challeng] 파이썬 챌린지 1
첫 화면을 보면 하나의 이미지와 두 문장이 있다.
노란색의 힌트를 보면 '모두는 이것을 해결하기 전에 두 번 생각합니다.' 라고 쓰여있는데 아직 무슨 소리이지 모르겠고 이미지에 집중을 해보자. K→M, O→Q, E→G 이렇게 글이 쓰여 있는데 언어를 조금 써봤다면 자연스럽게 '치환'이라는 단어가 떠오를 것이다. 무작정 치환을 하지는 않겠고 규칙을 찾아야하는데, 세가지의 알파벳 모두 2칸씩 밀려있는 것을 알 수 있다. 힌트 밑의 보라색으로 알파벳이 뒤죽박죽으로 섞여있는데 이 문장에 해답이 있을 것 같다. 이문장을 알파벳을 두 개씩 뒤로 미는 프로그래밍 코드를 짜보았다.
[소스 코드]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ex = 'g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr\'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb. lmu ynnjw ml rfc spj' sen=[] for x in ex: x = ord(x) if x!=32 and chr(x).isalpha(): if x>120: sen.append(chr(x-24)) else: sen.append(chr(x+2)) else: sen.append(chr(x)) for x in sen: print(x, end='') | cs |
[결과]
1 2 3 4 | i hope you didnt translate it by hand. thats what computers are for. doing it in by hand is inefficient and thats why this text is so long. using string.maketrans() is recommended. now apply on the url >>> |
??? 아니.. 파이썬 공부하면서 저런 함수를 처음 보았다. 만약 알았다면 함수를 써서 한번에 문제를 풀었을텐데.. 덕분에 조금 더 어렵게 돌아갔다. URL에 적용하라고 하니 URL에 있는 map 이 다음 레벨로 넘어갈 수 있는 키 인듯 하다. 함수를 배운김에 함수를 이용하여 map을 2칸씩 뒤로 미루는 코드를 짜보았다.
[소스 코드]
1 2 3 4 5 6 | import string ex2 = 'map' before = "abcdefghijklmnopqrstuvwxyz" after = "cdefghijklmnopqrstuvwxyzab" sen2 = ex2.maketrans(before, after) print(ex2.translate(sen2)) |
결과를 URL에 입력하면 다음 레벨로 넘어갈 수 있다! 혹시 나처럼 string.maketrans 함수를 모르는 분들을 위해 직접 포스팅 해야겠다.
string.maketrans[링크 Click]
next Challenge URL : http://www.pythonchallenge.com/pc/def/ocr.html
'War Game > python challenge' 카테고리의 다른 글
[Python Challenge] 파이썬 챌린지 3 (0) | 2017.07.20 |
---|---|
[Python Challenge] 파이썬 챌린지 2 (0) | 2017.07.19 |
[Python Challenge] 파이썬 챌린지 0 (0) | 2017.07.13 |