[python]파이썬으로 기준 날짜의 다음날 구하기

지원석·2021년 12월 12일
0

TIL

목록 보기
5/8

다음과 같은 파이썬 문제를 접해보았다.

  • 월(month)와 일(day), 2가지를 input 값으로 받습니다.
  • 해당 월과 일의 다음 날의 월과 일을 출력해주세요.
  • 예를 들어, month 는 3이고 일은 31이면 2019년 3월 31일의 다음날은 4월 1일 임으로 다음과 같이 출력이 되면 됩니다 (월 과 일을 각각 다른 줄에 출력 해주세요).

나는 문제를 보고 30일인 달, 31일인 달, 2월의 경우 등등을 생각해보며 다양한 상황을 노트에 적었고, 이렇게 코드를 짰다.

month = int(input("월(month) 를 숫자로 입력해주세요: "))
day = int(input("일(day) 를 숫자로 입력해주세요: "))

## 아래 코드를 입력해주세요.
if (month==2 and day==28):
  print(3)
  print(1)
elif (month==12 and day==31):
  print(1)
  print(1)
elif (month==1 or month==3 or month==5 or month==7 or month==8 or month==10) and (day==31):
  print(month+1)
  print(1)
elif (month==4 or month==6 or month==9 or month==11) and (day==30):
  print(month+1)
  print(1)
elif (month>=1 or month<=12) and (day>=1 or day<=30):
  print(month)
  print(day+1)

결과는 맞았지만, 아마도 뻘짓같다....

인터넷을 뒤져보니 정말 간단한 솔루션이 존재했는데,

if ((day == 30) and (month == 4 or month == 6 or month == 9 or month == 11)
    or (day == 28) and (month == 2)
    or (day == 31)):
  month += 1
  day = 1
else:
  day += 1  
if month == 13:
  month = 1
print(month)
print(day)

아주 간단했다. 물론 접근법이야 비슷하겠으나, 참 간결하다!

이렇게 간결한 코드를 짜기 위해선 연습만이 답이겠지? 화이팅하자:)

0개의 댓글