작성 일자 : 2016. 08. 29
재작성 일자 : 2018. 07. 31
참고 사이트 :
- [Tutorialspoint] Python String islower() Method
- [Tutorialspoint] Python String isupper() Method
- [The Python Challenge Solutions] Level 3
- [docs.python] 7.2. re — Regular expression operations
http://www.pythonchallenge.com/pc/def/equality.html
python challenge 3단계이다.
힌트는 "One small letter, surrounded by EXACTLY three big bodyguards on each of its sides."
찾고자 하는 소문자 (One small letter)는 양 옆의 각각 세 개의 대문자 (three big bodyguards) 사이에 존재하는 것을 알 수 있다.
F12 (크롬 개발자 도구)를 눌러 소스 코드를 확인해 보도록 하자.
이번에도 주석으로 처리된 부분이 나오는 것을 확인할 수 있다.
<!-- kAewtloYgcFQaJNhHVGxXDiQmzjfcpYbzxlWrVcqsmUbCunkfxZWDZjUZMiGqhRRiUvGmYmvnJIHEmbT MUKLECKdCthezSYBpIElRnZugFAxDRtQPpyeCBgBfaRVvvguRXLvkAdLOeCKxsDUvBBCwdpMMWmuELeG ENihrpCLhujoBqPRDPvfzcwadMMMbkmkzCCzoTPfbRlzBqMblmxTxNniNoCufprWXxgHZpldkoLCrHJq vYuyJFCZtqXLhWiYzOXeglkzhVJIWmeUySGuFVmLTCyMshQtvZpPwuIbOHNoBauwvuJYCmqznOBgByPw TDQheAbsaMLjTmAOKmNsLziVMenFxQdATQIjItwtyCHyeMwQTNxbbLXWZnGmDqHhXnLHfEyvzxMhSXzd BEBaxeaPgQPttvqRvxHPEOUtIsttPDeeuGFgmDkKQcEYjuSuiGROGfYpzkQgvcCDBKrcYwHFlvPzDMEk MyuPxvGtgSvWgrybKOnbEGhqHUXHhnyjFwSfTfaiWtAOMBZEScsOSumwPssjCPlLbLsPIGffDLpZzMKz jarrjufhgxdrzywWosrblPRasvRUpZLaUbtDHGZQtvZOvHeVSTBHpitDllUljVvWrwvhpnVzeWVYhMPs kMVcdeHzFZxTWocGvaKhhcnozRSbWsIEhpeNfJaRjLwWCvKfTLhuVsJczIYFPCyrOJxOPkXhVuCqCUgE luwLBCmqPwDvUPuBRrJZhfEXHXSBvljqJVVfEGRUWRSHPeKUJCpMpIsrVMuCmDTZPcAezRnyRTJkYyXk oLEmjtaCsKmNOKNHygTixMKNaSifidWNbeZYYHCGMtgJiTSlzRMjzOAMuhmYwincvBydQMDPaZclRsYU SeEnkclzGopkBozDQfXrQqHjRvlAQsijPCsrnUawvyskbTAnjctFftReVrIBFBKiLSFGmrLSrcnZKfOU wnCGYaMNKNhadSGMXwBaefDrMXoNeJsUaSGlWgttAqovosuhyBWwqQLkVKnRseXaaPwrMtdWjGiVXPvd ......(생략)...... |
알파벳 대소문자가 뒤섞여 있지만 우리는 힌트로 주어진 규칙에 해당되는 소문자만 찾아내면 된다.
먼저 주석에 해당하는 값을 받아도록 한다.
Level 2에서와 같이 정규 표현식을 이용하고자 한다.
순서대로 적용해 보면 아래와 같다.
(참고: Level3 해설)
[a-z] : 찾고자 하는 값은 소문자이다
[A-Z][a-z][A-Z] : 소문자는 대문자 사이에 위치해야 한다
[A-Z]{3}[a-z][A-Z]{3} : 대문자는 3번씩 반복되어야 한다
[^A-Z][A-Z]{3}[a-z][A-Z]{3}[^A-Z] : 3번씩 반복된 대문자의 앞과 뒤에는 대문자가 아닌 다른 문자가 와야만 한다
[^A-Z]+[A-Z]{3}[a-z][A-Z]{3}[^A-Z]+ : 다른 문자는 한 개 이상 올 수 있다
[^A-Z]+[A-Z]{3}([a-z])[A-Z]{3}[^A-Z]+ : 신경써야 하는 문자는 소문자이다
해당 정규식을 이용하여 파이썬 코드를 완성시키면 아래와 같다.
실행한 결과값은 linkedlist이다.
즉, "www.pythonchallenge.com/pc/def/linkedlist.html" 가 python challenge 3단계의 정답이 된다.
'Algorithm > WarGame - The Python Challenge' 카테고리의 다른 글
The Python Challenge 5 (0) | 2016.09.07 |
---|---|
The Python Challenge 4 (0) | 2016.08.31 |
The Python Challange 2 (0) | 2016.08.29 |
The Python Challenge 1 (0) | 2016.08.29 |
The Python Challenge warming up (0) | 2016.08.29 |
댓글