페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#4859
인터랙티브

파이썬 이터레이터 연습문제 - 학교 가는 날 (School Day) 1s 64MB

문제

내년에 중학교 2학년이 되는 두호는 인천과학예술영재학교를 가고 싶다.
그러기 위해서는 공부를 열심히 해야 하는데, 노는 시간을 포기할 수 없기에 최대한 시간을 효율적으로 사용하고 싶다.
그래서 2022년부터는 계획표를 짜서 스케줄 관리를 확실하게 하려고 한다. 
두호는 달력을 만들어서 학교 가는 날에 어떻게 공부할지 적으려고 한다.
이를 위해서는 우선 학교 가는 날짜가 어떻게 되는지를 다 알아야 한다.
미래의 후배가 될 두호를 위해서 2학년 1학기 학교 가는 날을 출력하는 프로그램을 만들어주자.
단, 단순 반복문으로 코드를 작성하기엔 후배에게 부끄러우니, ​이터레이터​를 이용해서 작성하자!
선배님들을 위해 친절한 두호는 미리 1학기 기간 동안의 모든 공휴일 날짜를 구글링해놨다.

공휴일(대체공휴일 포함)을 잘 고려해서 두호에게 학교 가는 날을 알려주자.​

 

참고 : 2022년 1월 1일은 토요일이다.

 

이터레이터 클래스의 구성은 아래와 같다.

 

[schoolDay]

변수: 

    nowDate(현재날짜)

    endDate(마지막날짜)

    holidaies(휴일들)

함수:

    addHoliday(m, d): holidaies에 휴일 추가

    __iter__()

    __next__()​

 

위 이터레이터 구성 설명과 아래 코드를 참고하여 이터레이터만 작성하여 제출하시오. (추가 변수나 함수가 필요할 시에 추가하시오)

 


입력

첫 번째 줄에 개학식 날짜와 방학식 날짜가 MM DD MM DD​형식으로 한 줄에 들어온다.

두 번째 줄에 공휴일 수가 입력되고,

세 번째 줄부터 두 번째 입력된 공휴일 수만큼 공휴일의 날짜가 MM DD 형식으로 입력된다.

 

예를 들어 첫 줄에 3 7 8 12이 입력된다면, 3월 7일에 개학식을 하고, 8월 12일에 방학식을 하게 된다.


출력

학교 가는 날을 공백을 기준으로 월,일,요일을 구분하여 한 줄씩 출력한다.​ (개학식과 방학식도 학교 가는 날에 포함된다)​

 

요일은 월요일=MON, 화요일=TUE, 수요일=WED, 목요일=THUR, 금요일=FRI로 나타낸다.


예제

3 7 8 12

5
3 9
5 5
5 8
6 1
6 6
3 7 MON

3 8 TUE
3 10 THUR
3 11 FRI

...

8 10 WED
8 11 THUR
8 12 FRI


출처

klee

로그인해야 코드를 작성할 수 있어요.