본문 바로가기

ALGORITHM/SWEA

[SWEA D1] 2056. 연월일 달력(Python)

문제 링크

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5QLkdKAz4DFAUq&categoryId=AV5QLkdKAz4DFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=1 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


제출 코드

- Pass

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
    input_data = input()
    year = int(input_data[:4])
    month = int(input_data[4:6])
    day = int(input_data[6:])
    days_31 = [1, 3, 5, 7, 8, 10, 12]
    days_30 = [4, 6, 9, 11]
    days_28 = [2]
    if (month in days_31) and (day > 31 or day < 1):
        result = -1
    elif (month in days_30) and (day > 30 or day < 1):
        result = -1
    elif (month in days_28) and (day > 28 or day < 1):
        result = -1
    elif month > 12 or month < 1:
        result = -1
    else:
        result = input_data[:4] + '/' + input_data[4:6] + '/' + input_data[6:]
    print(f"#{test_case} {result}")

풀이

  • slicing으로 연, 월, 일 받기
  • 31일, 30일, 28일인 달로 나누어 날짜가 그 범위 안에 있는지 판단

알아둘 것