프로그래밍/백준

[알고리즘] 백준 25286 파이썬 - 11월 11일

매 석 2022. 10. 14. 13:36
반응형

 

 

25286번: 11월 11일

11월 11일에는 농업인의 날, 가래떡 데이, 보행자의 날, 대한민국 해군 창설 기념일, 유엔참전용사 추모의 날, 빼빼로 데이 등 다양한 의미를 가진 날이다. 성현이는 11월 11일의 11일 전은 10월 31일,

www.acmicpc.net

 

문제

11월 11일에는 농업인의 날, 가래떡 데이, 보행자의 날, 대한민국 해군 창설 기념일, 유엔참전용사 추모의 날, 빼빼로 데이 등 다양한 의미를 가진 날이다. 성현이는 11월 11일의 11일 전은 10월 31일, 즉 할로윈 데이라는 것을 깨달았고, 다음 할로윈 데이 때 친구에게 빼빼로를 받아낼 계획을 세우고 있다.

성현이는 문득 11월 11일처럼 m m일의 m일 전이 또 다른 기념일인 m이 있는지 궁금해졌다. m m일의 m일 전의 날짜를 구하는 프로그램을 만들어보자.

1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지 있으며, 2월은 평년에는 28일, 윤년에는 29일까지 있다. 윤년이란, 연도가 100의 배수를 제외한 4의 배수이거나 400의 배수인 해를 의미한다.

 

문제풀이

import sys
T = int(input())
for _ in range(T):
    y,m = map(int,sys.stdin.readline().split())
    if(m==3):
        if((y%100!=0 and y%4==0) or y%400==0):
            print(y ,m-1 ,29)
        else:
            print(y, m-1 ,28)
    elif(m==5 or m==7 or m==10 or m==12):
        print(y, m-1 ,30)
    elif(m==1):
        print(y-1, 12, 31)
    else:
        print(y, m-1, 31)