일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- NFPC
- Defcon
- CTF
- 파이썬 공부
- Symmetric key crypto
- 대칭키 암호
- network forensic
- The python challenge
- Symmetric key algorithm
- 파이썬 문법
- c
- 포렌식
- php
- pythonchallenge
- 웹
- Symmetric key
- C언어
- 암호
- 대칭키암호
- WEB
- Stream cipher
- 파이썬 문제
- forensic
- 암호수학
- block cipher
- DefCon 21
- 네트워크
- python
- 암호학
- 파이썬
- Today
- Total
Hardner
Python Challenge: level 3 본문
The Python Challenge: level 3
아래 글의 해석: "하나의 소문자, 정확히 3개의 큰 보디가드에게 좌우가 둘러싸여져있다. "
사진을 참고해서 의역해보면 "하나의 소문자 좌우에 3개의 대문자로 둘러싸여져있다."란 말 같습니다.
이외에 별다른 내용이 없으므로 페이지 소스를 열어서 코드를 확인해 보겠습니다.
HTML 태그 아래를 보면 이렇게 긴 주석이 발견됩니다.
직접 하나하나 찾을 수도 있지만 주석의 길이가 이미지보다 훨씬 길고 파이썬 공부를 위해 하는 것이기 때문에 직접 코딩을 해보았는데 1번은 가지고 있는 지식을 토대로 한 것이고, 2번은 1번을 풀고 코딩을 간략화 하고 싶어서 정규표현식을 공부하여 코딩한 내용입니다.
file = ''' 주석 문장 '''
cnt = 0 # 하나의 소문자를 걸러내기 위한 카운팅 변수.
lar_cnt = 0 # 대문자 3개인지 확인하는 변수.
li = [] # 찾은 소문자를 모아두기 위한 리스트.
bool = False # 리스트에 참과 거짓에 따른 값 입력, 값 삭제를 위한 변수.
for i in file:
if 'A'<= i and i <='Z':
lar_cnt +=1
if lar_cnt >3:
cnt = 0
if cnt == 6:
li.pop()
bool = False
if lar_cnt <=3:
if cnt < 3:
cnt += 1
elif cnt<6 and bool:
cnt += 1
else :
cnt = 0
elif 'a'<= i and i<='z':
lar_cnt = 0
if cnt == 6:
cnt = 3
bool = False
if cnt == 3 and not(bool):
bool = True
li.append(i)
elif cnt>=3:
li.pop()
cnt = 0
bool = False
else :
cnt = 0
if bool:
li.pop()
print(li) # 출력결과.
import re
file = ''' 주석 문장 '''
result = re.findall('[a-z][A-Z]{3}[a-z][A-Z]{3}[a-z]',file)
result = re.findall('[A-Z][a-z][A-Z]',''.join(result))
result = re.findall('[a-z]',''.join(result))
print(''.join(result)) # 출력결과
출력결과인 linkedlist를 URL에 http://www.pythonchallenge.com/pc/def/linkedlist.html 이렇게 입력하시면
위와 같은 페이지로 이동할텐데
URL을 http://www.pythonchallenge.com/pc/def/linkedlist.php로 바꾸어 입력하시면 문제가 해결됩니다.
'Computer > python' 카테고리의 다른 글
Python Challenge: level 2 (2) | 2019.01.03 |
---|---|
Python Challenge : level 1 (2) | 2018.12.31 |
Python Challenge : warming up (1) | 2018.12.28 |