[Python Challenge] 파이썬 챌린지 3

반응형


Python Challeng 문제풀이

* Python Challeng는 프로그래밍 언어인 파이썬 관련 문제입니다.

* 개인적인 문제풀이로 해답을 보시기 전에 직접 풀어보시기를 권해드립니다.

* 때로는 추가 모듈이 필요합니다. 모든 것은 인터넷에서 무료로 다운로드 할 수 있습니다.

[링크] 문제풀이 바로가기


[Python Challeng] 파이썬 챌린지 3

[문제 살펴 보기]

첫 화면을 보면 하나의 이미지와 힌트가 있다.

'1 개의 작은 편지, 각면에 정확히 3 명의 큰 보디 가드.'? 번역해봐도 무슨 뜻인지 자세히 모르겠다. 페이지 소스를 한번 보자.

역시 소스에 뭔가가 있다. 저번 문제처럼 저 수많은 문자열중에 하나의 해답을 얻는 것 같은데.. 1개의 작은 편지가 소문자, 3개의 큰 보디가드가 대문자를 뜻하는 거란다... 어쨋든 해당 문제는 정규표현식을 사용하면 어느정도 해결할 수 있을 것 같다.




[문제 풀이]

1개의 소문자 옆에 3개의 대문자가 있어야 한다고 하니 주석에 있는 문자열들을 level3.txt 파일에 저장한 후 파이썬으로 불러들여 정규표현식을 사용하여 다음과 같이 코드를 짜보았다.

[소스 코드1]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import re
 
txt = open('level3.txt''r')
data = txt.read()
 
answer = re.findall("[a-z][A-Z]{3}", data)
print(answer)
#아래 화면은 결과
['hHVG''xZWD''jUZM''nJIH''zSYB''uRXL''vBBC''pMMW''qPRD''dMMM''yJFC''hVJI''mLTC',
'bOHN''uJYC''mAOK''dATQ''wQTN''bLXW''xHPE''iGRO''cCDB''zDME''qHUX''tAOM''sPIG',
'tDHG''eVST''eWVY''zIYF''wLBC''fEXH''qJVV''fEGR''eKUJ''mDTZ''yRTJ''mNOK''xMKN',
'eZYY''zOAM''dQMD''rIBF''iLSF''nCGY''aMNK''dSGM''iVXP''xAIT''bHFZ''zKEB''iTKV',
'jBTL''wXJN''rZXB''dJPJ''eCQG''qHKA''uOHY''bVZU''gHEG''zYKH''hQHW''rUWE'#코드 중략...
>>>
cs

너무 많은 결과가 나와서 이게 답은 아닌 것 같다. 아마 소문자 양 옆에 대문자가 3개씩 있어야 하나 보다. 다시 코드를 짜보자.

[소스 코드2]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import re
 
txt = open('level3.txt''r')
data = txt.read()
 
answer = re.findall("[A-Z]{3}[a-z][A-Z]{3}", data)
print(answer)
#아래 화면은 결과
['WDZjUZM''JVVfEGR''SHPeKUJ''FBKiLSF''CGYaMNK''JIPuOHY''SJFzWSG''MZLrORO''IKHoWJZ',
'YTYiWIU''TLKvIPG''RPBgLPD''MXVzDPO''OXObJYI''MTCmGEH''PCDpHIV''YXLsUFT''CVKzIKJ',
'BFXaYKG''NNWzBFX''IQNlQSL''ACBuUJT''DBDtODU''UCSnAYQ''OLAwLQA''KDZsHQJ''ZXYdEHG',
'IHToMPG''UQFfVTU''XRGbNVK''LRYiYTJ''CAQwPFN''GNBqQTC''PDOdOXV''XORjWFT''RRObZUL',
'WDXzQOP''LHGsDZT''MXThWAR''SVWfOVI''SXUrANU''QMTbPFZ''XGIlRQO''KCCqLRG'#코드 중략...
>>>
cs

이것도 아닌 것 같다. 대문자 3개 양 옆에 소문자가 있어야 하나 싶어 다시 돌려봤다.

[소스 코드3]

1
2
3
4
5
6
7
8
9
10
11
import re
 
txt = open('level3.txt''r')
data = txt.read()
 
answer = re.findall("[a-z][A-Z]{3}[a-z][A-Z]{3}[a-z]", data)
print(answer)
#아래 화면은 결과
['qIQNlQSLi''eOEKiVEYj''aZADnMCZq''bZUTkLYNg''uCNDeHSBj''kOIXdKBFh','dXJVlGZVm',
'gZAGiLQZx''vCJAsACFl''qKWGtIDCj']
>>> 
cs
뭔가 결과가 적다. 답을 찾은 것 같다. 답은 3명의 보디가드(...)에 둘러쌓여 있는 소음자의 모음 'linkedlist' 란다. 개인적으로 문제가 좀 명확하지가 않지만 어찌저찌 풀기는 한 것 같다. 이런 문제는 별로다!!!

next Challenge URL : http://www.pythonchallenge.com/pc/def/linkedlist.php

반응형
TAGS.

Comments