본문 바로가기

#WarGame/Python Challenge

Python Challenge # LV.15 (calendar)

반응형

출처) http://www.pythonchallenge.com/index.php

 

The Python Challenge

What people have said about us: "These sorts of things are in my opinion the best way to learn a language.", brberg at Media Cloisters "It's the best web site of the year so far.", Andy Todd at halfcooked "Addictive way to learn the ins and outs of Python.

www.pythonchallenge.com

 

 

www.pythonchallenge.com/pc/return/uzi.html

[그림1. LV15 문제]

 

  • 파이썬 챌린지 레벨15 문제!
  • 달력사진이 주어졌고, 1월 옆에 1⚫6이라고 되어있다. 그리고 26일에는 동그라미가 쳐져 있다.
  • 페이지소스를 확인해보았다.

 

[그림2. page source]

 

  • 제목은 whom?이다. 
  • 주석으로 된 두 문장이 있다. 

"he ain't the youngest, he is the second"

그는 최연소가 아니라 두 번째 이다.

 

"todo: buy flowers for tomorrow"

오늘 할일 : 내일을 위해 꽃을 산다.

 

  • 다시 처음으로 와서 달력사진을 보니 1월 26일이 월요일을 나타내고 있고, 1⚫6는 년도를 나타내는 것 같다.
  • 오른쪽 밑에 보면 2월 달은 29일까지 있다. 윤달이 있는 년도 중에 1월 26일 월요일인 해를 찾으면 되는 것 같다.
  • 구글에 년도를 찾을 수 있는 모듈이 있는지 검색해보니 calendar함수가 있었다.
  • calendar.weekday는 특정 년 월 일을 인자로 받아 날짜에 해당하는 요일정보를 리턴한다.
  • 이 때 0은 월요일(기본값)이고, 6은 일요일이라고 한다.
  • 그리고 윤달을 알 수있는 함수도 있다.
  • calendar.isleap(year)에서 year가 윤년이면 true, 그렇지 않으면 false를 반환한다고 한다.

 

import calendar  
for year in range(1006,1996,10):   
    if (calendar.weekday(year,1,26) == 0) &  calendar.isleap(year):
        print(year) 
  • 1006년부터 1996년까지 10년 단위로 1월 26일 월요일이고, 윤달이 있는 해인지를 출력해보았다.
  • 출력결과 1176  1356  1576  1756  1976 가 나왔다.
  • 아까 주석에서 youngest는 최근을 말하는 것 같다. 두번째라고 했으니 년도는 1756년이다.
  • 그리고 1월 26일 동그라미가 되어 있어 1756년 1월 26일을 검색해보았다.
  • 조선왕조실록 어쩌고가 나오더니 밑으로 내려보니까 볼프강 아마데우스 모차르트가 나왔다.
  • 모차르트의 생일은 1월 27일이였다.
  • 두번째 주석에서 내일을 위해 꽃을 산다고 했으니 모차르트가 답인 것 같다.

 

답 : mozart

www.pythonchallenge.com/pc/return/mozart.html  로 가면 다음 레벨 문제가 나온다.

 

 

반응형