-
0x03.Python Challenge 30x.Wargame/Python Challenge 2017. 6. 1. 22:02
0x03.Python Challenge 3
문제 주소 : http://www.pythonchallenge.com/pc/def/equality.html
전역도 했고, 6월도 왔으니 3번 문제를 풀어보자 ??!
문제를 읽어보니, 소문자의 좌우에 큰덩치가 셋 씩 있단다. 머 해석해보면 소문자를 두고 양 옆에 대문자가 3개씩 있나보다.
이해를 하자말자 정규 표현식으로 풀어야 되는 문제구나 하는 감이 왔다.
역시 소스코드에는 다음과 같이 떡하니 문자들이 블라블라(?) 적혀있다.
[a-z]
소문자 a에서 z까지 중 하나의 값을 뜻함
[A-Z]{3}
대문자 A에서 Z사이의 하나의 값이 3번 연속으로 있음을 뜻함
[0-9]{2~5}
숫자가 2~5번 반복됨
^abc
abcde, abcfx와 같이 abc로 시작하는 단어를 찾을 때 사용
다음은 아주 기초적인 정규 표현식들을 정리한 표이다. 4가지만 간추려보았는데 이 정도만 알아도 문제를 풀 수 있을 만큼 아주 쉬운 문제라는 뜻이다 ㄷㄷ.
짜잔~!
[a-z][A-Z]{3}[a-z][A-Z]{3}[a-z] 를 해석해보자면,소문자 값 뒤에 대문자 값이 3개가 오고 그 다음에 소문자 값이 오고 다시 대문자 값이 3개가 오고 소문자 값이 오는 것을 찾아라구...
어쨋든 그렇게 찾아보았더니 qIQNlQSLi 등 10개의 패턴들을 찾을 수 있었다. 하지만 프로그래머가 일일히 중간값을 확인하긴 좀 그렇잖아요. 그래서 중간에 ( [a-z] ) 로 소괄호를 포함시켜 특정 값만 저장하도록 했고, linkedlist라는 값을 찾을 수 있었다는거!.
'0x.Wargame > Python Challenge' 카테고리의 다른 글
0x05.Python Challenge 5 (0) 2017.06.08 0x04.Python Challenge 4 (0) 2017.06.07 0x02.Python Challenge 2 (0) 2017.05.09 0x01.Python Challenge 1 (0) 2017.05.05 0x00.Python Challenge 0 (0) 2017.05.03 댓글