20210113 // 삼성 SW Expert 아카데미 // 2056
2021. 1. 13. 12:40ㆍProgramming/SW Expert Academy
삼성 SW Expert 아카데미 2056번 "연월일 달력" 문제입니다.
TC = int(input())
for tc in range(1, TC+1):
date = input()
if len(date) != 8:
print("#%s"%tc, -1)
else:
if int(date[4:6]) > 0 and int(date[4:6]) < 13:
if int(date[4:6]) == 2:
if 0 < int(date[6:]) < 29:
print("#%s "%tc, date[0:4], '/', date[4:6], '/', date[6:], sep="")
else:
print("#%s"%tc, -1)
elif int(date[4:6]) in [1,3,5,7,8,10,12]:
if 0 < int(date[6:]) < 32:
print("#%s "%tc, date[0:4], '/', date[4:6], '/', date[6:], sep="")
else:
print("#%s"%tc, -1)
else:
if 0 < int(date[6:]) < 31:
print("#%s "%tc, date[0:4], '/', date[4:6], '/', date[6:], sep="")
else:
print("#%s"%tc, -1)
else:
print("#%s"%tc, -1)
입력 포맷은 연 4자리 월 2자리 일 2자리 총 8자리다. 따라서 date에 문자열 형식으로 입력 받는다.
만약 이 8자리 형식을 만족하지 못한다면 -1(오류)을 출력한다.
정상적으로 입력을 받았을 경우 date 문자열에서 4:6 구간(월)이 유효한 월인지 따진다.(1월~12월)
유효한 월이 아닐 경우 -1(오류)을 출력한다.
유효한 월일 경우 월에 따른 총 일수를 따진다. 1,3,5,7,8,10,12월은 31일까지, 4,6,9,11월은 30일까지 2월은 28일까지로 따진다.
각각의 월에서 유효한 일수가 아닐 경우 -1(오류)을 출력한다.
'Programming > SW Expert Academy' 카테고리의 다른 글
20210113 // 삼성 SW Expert 아카데미 // 1933 (0) | 2021.01.13 |
---|---|
20210113 // 삼성 SW Expert 아카데미 // 2050, 2047 (0) | 2021.01.13 |
20210112 // 삼성 SW Expert 아카데미 // 2058 (0) | 2021.01.12 |
20210112 // 삼성 SW Expert 아카데미 // 2063 (0) | 2021.01.12 |
20210112 // 삼성 SW Expert 아카데미 문제 // 2068 (0) | 2021.01.12 |