문제 화면이다.
(3번 문제 화면)
내 생각엔 소문자 하나에 대문자 3개가 양옆으로 있는 그런 소문자들을 조합하면 답이 나올거 같다.
(소스 코드로)
늘 그랫듯이
페이지 소스보기 클릭!
(문자덩어리들)
우선 이 글들을 복사해서 텍스트 파일로 만들었다.
2번문제에서 배운 교훈을 이용해 파일을 입력으로 받을 생각이다.
우선 내 생각은 이랬다.
유니코드로 소문자는 97부터 122까지였고
대문자는 65부터 90까지다.
즉 ord로 숫자를 판별해서
앞에 세개가 대문자고 가운데 소문자 그리고 뒤 세개가 대문자인지 판별하는 식을 입력했다.
이 조건에 맞으면 리스트에 추가하고 출력! (간단하군!)
(의심없이 코딩)
(실행 결과)
...
..??
이게 답이라고?? 뭔가 잘못됬다는 생각이 들었다.
이렇게 많을리가..
인덱스를 조사해서 어디서 저 소문자들이 출력됬는지 확인했다.
(예외 글자)
대문자가 연속으로 4개인 경우도 출력하고 5개 등등 앞뒤로
예외상황이 많았다..
(3개 뿐 아니라 더 앞 더 뒤도 한번 더 체크)
검사 글자로부터 앞뒤 3개가 아니라 4개 검사로 늘렸다.
(실패)
나는 지금까지 해왔던것들을 그대로 유지하면서 진행하려고 노력했으나
난관에 부딪혔다.
한참을 고민해봤지만 새로운 방식으로 해야했다.
전에 암호공부하면서 같이 파이썬을 다룬적이 있는데 그 때 정규식으로 패턴 검색하던 것이 생각났다.
급히
정규식 검색과 파이썬 API 문서 참조를 통해
정규식을 공부하고
다시 이 문제에 접근했다.
(정규식 이용 코드)
(결과)
한번에 됬다.! 저기에서 세개로 싸인 소문자들만 읽으면 된다!
하지만 그러기에 조금 찝찝하고 정규식을 더 써볼겸 해서 코드를 추가해보았다.
(한번에 결과를 출력하는 코드)
(실행 결과)
답은 linkedlist !
(이제야 뭔가 답 같다.)
(해왔던 대로 linkedlist 입력)
(??)
(정답~)
3번 문제에서 탈출하였다.!
하던 방식이 안되면 다른 방법으로 접근을 해야된다라는게
오늘의 교훈 3번의 교훈이다.!
:)
'WarGame > Python Challenge' 카테고리의 다른 글
Python Challenge - 5 (0) | 2017.01.18 |
---|---|
Python Challenge - 4번 (0) | 2017.01.09 |
Python Challenge - 2 (0) | 2017.01.01 |
Python Challenge - 1 (0) | 2017.01.01 |