본문 바로가기
파이썬/파이썬 알고리즘

[swea - 파이썬] 2056. 연월일 달력

by Go! Jake 2021. 7. 21.

 

  풀이

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
    # ///////////////////////////////////////////////////////////////////////////////////
    n = input()

    year = n[:4]
    mon = n[4:6]
    day = n[6:8]
    day_dict = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}

    if (int(mon) >= 13) or (int(mon) <= 0):
        print(-1)
        continue
    else:
        if day_dict[int(mon)] < int(day) or int(day) <= 0:
            print(-1)
            continue
        else:
            print(year, mon, day)

1. 연속된 숫자배열을 입력 받고, 이를 index로 잘라 연,월,일로 사용한다.

2. 각 월마다 일자를 딕셔너리에 저장하였다.

3. if-else 문으로 월이 1~12월이 아니면 유효하지 않으므로 -1을 출력하도록 하였고, day 값이 월에 지정된 날짜보다 크거나, 0과 작거나 같으면 유효하지 않으므로 -1을 출력하였다.

4. 나머지 경우는 유효하므로 연 월 일을 출력하였다.

 

 

 

댓글