728x90
이번 포스트에서는 Python Challenge의 Level 15 문제에 대해 다루겠다.
문제를 클릭하면 다음과 같은 페이지가 출력된다.
## 문제 해석 :
달력이 출력되어있다. 달력 우측 하단에 위치하는 오른쪽 달력을 보면 2월이라고 되어있는데, 29일까지 있다는 것을 알 수 있다. 즉 윤년인 것이다. 일단 1**6년 중 윤년이면서, 1월 1일이 목요일이면서 6으로 끝나는 해를 찾으면 될 것 같다.
## 문제 풀이 :
파이썬을 통해 1**6년 중 윤년을 구해보겠다.
### 공격 코드 :
import calendar
leap_years = list()
for i in range(1006, 2000, 10):
curr_year = i
if(calendar.isleap(curr_year)):
if(calendar.weekday(curr_year, 1, 1) == 3):
leap_years.append(curr_year)
print(leap_years)
### 실행 결과 :
5개의 윤년이 출력된 것을 확인할 수 있다.
힌트를 얻기 위해 개발자 도구를 확인해보겠다.
가장 젊은 사람이 아닌 둘째라고 한 것으로 보아 1756인 것 같다. 또한 다음 날을 위해 꽃을 사야한다고 되어있는데, 다음 날은 1756년 1월 27일이다.
구글에서 해당 날짜에 대한 정보를 검색해보겠다.
### 실행 결과 :
모차르트의 탄생일임을 알 수 있다. 정답은 바로 mozart이다.
### 최종 공격문 : http://www.pythonchallenge.com/pc/return/mozart.html
### 실행 결과 :
Level 16로 넘어간 것을 확인할 수 있다.
'Wargame > Python Challenge' 카테고리의 다른 글
Python Challenge (Level 17) (0) | 2022.09.16 |
---|---|
Python Challenge (Level 16) (0) | 2022.09.15 |
Python Challenge (Level 14) (0) | 2022.09.10 |
Python Challenge (Level 13) (0) | 2022.09.08 |
Python Challenge (Level 12) (0) | 2022.09.07 |