-
python challenge-4WarGame & 문제풀이/pythonchallenge.com 2019. 8. 20. 10:19
이번에는 pythonchallenge 4번 문제를 풀어보겠습니다
문제 주소 : http://www.pythonchallenge.com/pc/def/linkedlist.php
(*참고 이번 문제에서 사용할 group이 왠지 모르게 아톰 에디터에서 돌아가지 않아서 평범한 에디터인 IDLE에디터를 사용 하겠습니다.)
문제를 한번 보자면
음?? 힌트도 없고.. 떡하니 사진만?
그렇다면 답은 : 페이지 소스!
주석부분중에 중요한 부분을 보면 urllibe가 도와줄거라고 이야기 하군요
urllibe에 대해 공부하시고 문제에 임하시면 될거같습니다.
겨우 페이지 소스에 있는 설명만으로는 부족한것같아서 더없나 확인하던 중 사진을 누르니까 연결된 html 사이트가 나오더군요
And the next nothing is 44827 해석 : 다음 nothing은 44827입니다.
제가 주소까지 캡쳐한 이유는?
눈치 빠르신 분은 벌써 보셨겠지만 URL을 자세히 보면 nothing=12345 라는 값이 들어있네요
저 값을 바꿔 보도록 하겠습니다.
또 다음과 같이 나왔네요 좀만 더 해보도록 하겠습니다.
아…? Your hands are getting tired… 손이 힘들수 있다고 이야기 하네요 ㅋㅋ
아까 위에 주석에서 전부 해석을 하지 않았지만 400 times라고 적힌 문장이있었습니다.
아마 저렇게 숫자를 넣어서 400번을 하라는 뜻아닐까요??
일단은 어떻게 길을 잡아야 하는지 알았으니 코드를 짜러 한번 가볼까요?~
1번~2번줄 : 필요한 urllib과 re import 선언
4번줄 : url 변수에 nothing인 유동적인 값을 %s로 잡고 초기화
5번줄 : 유동적인 값인 nothing에 들어갈 첫 nothing값으로 초기화 = 12345
7번줄 : re에 있는 compile를 이용해서 pattern에 형식 컴파일
8번~13번 :
9번줄 : urllib의 request안에 있는 urlopen을 이용해서 주소에 해당하는 URL을 불러와서 content에 저장
urlopen(URL 주소) <- URL 주소에 해당하는 홈페이지 결과값 가져옴
url % num을 한 이유는 url 변수 안에있는 URL주소에 %s를 이용했기 때문에 %를이용해서 그자리에 넣을 값을 가지고 있는 변수 입력.
11번줄 : search를이용해서 pattern과 비교
12번줄 : 값이 안들어올때
13번줄 : break
14번줄 : 11번줄에서의 match를 그룹지은것 중에서 첫번째 그룹을 num에 담는다.
첫번째 그룹은 7번째 줄에서 and the next nothing is (\d+) 중에서 (\d+)를 그룹 1로 잡게된다.
실행 결과를 보면
Nothing의 값이 계속해서 들어가고 있는데 맨마지막에 문구가 뜨네요
Yes. Divide by two and keep going.
2로 나누세요 그리고 계속 하세요 라고 적혀있는걸 보니 맨마지막의 16044를 2로 나누라는 뜻 같습니다.
17번줄 부터 이어서 작성해 줍니다.
17번줄 : 16044를 2로 나누기
19번~26번줄 : 앞에서 설명
실행을 해보면 좀 기다리다보면 이렇게 끝이 납니다.
맨마지막의 peak.html을 적용하면됩니다.
http://www.pythonchallenge.com/pc/def/peak.html
'WarGame & 문제풀이 > pythonchallenge.com' 카테고리의 다른 글
python challenge-6 (0) 2019.08.20 python challenge-5 (0) 2019.08.20 python challenge-3 (0) 2019.08.20 python challenge-1 (0) 2018.12.20 python challenge-0 (0) 2018.12.20