SW Expert Academy #2056. 연월일 달력

이소은·2021년 7월 3일
0

SW Expert Academy

목록 보기
3/22

[Difficulty 1]

  • 문제
    연월일 순으로 구성된 8자리의 날짜가 입력으로 주어진다.
    해당 날짜의 유효성을 판단한 후, 날짜가 유효하다면
    2220228 --> 2222/02/28
    과 같이 "YYYY/MM/DD" 형식으로 출력하고,
    날짜가 유효하지 않을 경우, -1을 출력하는 프로그램을 작성하라.

    (연월일로 구성된 입력에서 월은 1~12 사이 값을 가져야하며
    일은 각각의 달에 해당하는 날짜까지의 값을 가질 수 있다.)
    -- 2월의 경우, 28일인 경우만 고려 --

  • 입력
    5
    22220228
    20150002
    01010101
    20140230
    11111111
    (첫 줄에 총 테스트 케이스 개수, 다음 줄 부터 각 테스트 케이스 주어짐)

  • 출력
    #1 2222/02/28
    #2 -1
    #3 0101/01/01
    #4 -1
    #5 1111/11/11
    (테스트 케이스 t에 대한 결과는 "#t"을 찍고, 한 칸 띄고, 정답 출력)

  • code

T = int(input())
for test_case in range(1, T+1):
    T = input()
    if int(T[4:6]) >= 1 and int(T[4:6]) <= 12:
        if int(T[4:6]) == 2:
            if int(T[6:]) <= 28:
                print(f'#{test_case} ' + T[:4]+'/'+T[4:6]+'/'+T[6:])
            else: print(f'#{test_case} -1')
        elif int(T[4:6]) == 4 or int(T[4:6]) == 6 or int(T[4:6]) == 9 or int(T[4:6]) == 11:
            if int(T[6:]) <= 31:
                print(f'#{test_case} ' + T[:4]+'/'+T[4:6]+'/'+T[6:])
            else: print(f'#{test_case} -1')
        else:
            if int(T[6:]) <= 30:
                print(f'#{test_case} ' + T[:4]+'/'+T[4:6]+'/'+T[6:])
            else: print(f'#{test_case} -1')
    else: print(f'#{test_case} -1')

0개의 댓글

관련 채용 정보