Level 0 problem-solving
pythonchallenge 사이트에 대해서는 간단히 먼저 설명을 했다.
설명했던 대로 이제 각 Level 별로 어떻게 해결하였는지 정리를 해보도록 하겠다.
일단 Level 0부터 진행하도록 하자.
1. 문제 확인
제일 처음으로 풀어보는 Level 0 문제이다.
해당 사이트에 접속하여 "Click here to get challenged"를 클릭하면 바로 아래 주소로 리다이렉트(Redirect)한다.
일단 문제는 확인하였고 힌트는 "try to change the URL address.(URL 주소를 변경해 보십시오.)"이다.
자 이제 한번 풀어보도록 하자.
2. 풀이 과정
처음 화면을 보고 힌트를 보았을 때 0.html을 다른 주소로 이동하면 답이 나올 것 같았다.
그래서 바로 0.html을 1.html로 변경해 보았다.
변경하였더니 위와 같이 다른 내용이 보이고 "2**38 is much much larger.(2**38은 훨씬 큽니다.)"라고 확인하였다.
아직 정확한 답을 확인할 수 없어서 두 번째로 1.html을 238.html로 다시 변경해 보았다.
역시 정답은 아니었고, "No... the 38 is a little bit above the 2...(아니요... 38은 2보다 약간 위에 있습니다...)"라고 확인하였다.
"38은 2보다 약간 위에 있다"라는 의미와 이미지에 숫자 간의 높이 간격, 그리고 1.html에서 확인하였던 "2**38"이라는 내용을 보고 2의 거듭제곱(승)에 대한 내용이라는 것을 알 수 있었다.
그럼 2**38(2^38)을 계산하면 274877906944가 나온다.
0.html을 274877906944.html로 한번 변경해 보자.
해당 274877906944.html에서 map.html 페이지로 리프레쉬(Refresh) 되면서 Level 1 문제로 이동한다.
위 과정을 통해서 Level 0 문제에 대해서 이렇게 해결을 할 수 있었다.
3. 문제 풀이
해당 부분은 Python Challenged이며, 해당 사이트 내용을 보면 Python을 통해서 문제 해결이 가능하다고 한다.
2**38(2^38)의 계산 값 또한 Python을 통해서 작성을 할 수 있다.
바로 계산을 할 수도 있고, math 모듈을 통해서 math.pow를 통해서 거듭제곱을 계산할 수 있다.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import math
if __name__ == "__main__":
answer = 2**38
print(answer)
# 2**38
print(math.pow(2, 38))
# OUTPUT
274877906944
274877906944.0
작성한 코드에 대해서는 Github를 통해서 확인할 수 있도록 하였다.
물론 앞으로 진행될 많은 문제들은 점점 Python을 이용하여 진행을 해야 할 것이다.
이제 겨우 한 문제 풀었는데 아직 32문제에 대해서 하나하나 고민해보면서 풀어보고 풀었던 내용에 대해서 잘 작성해보도록 하겠다.
🌵댓글