[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 |
next Challenge URL : http://www.pythonchallenge.com/pc/def/linkedlist.php
'War Game > python challenge' 카테고리의 다른 글
[Python Challenge] 파이썬 챌린지 2 (0) | 2017.07.19 |
---|---|
[Python Challenge] 파이썬 챌린지 1 (0) | 2017.07.14 |
[Python Challenge] 파이썬 챌린지 0 (0) | 2017.07.13 |