반응형
Notice
Recent Posts
Recent Comments
Link
It's easy, if you try
[SW Expert Academy] 2056: 연월일 달력 (Python) 본문
반응형
풀이
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
days = {1: 31, 2: 28, 3: 31, 4: 30, 5: 31, 6: 30, 7: 31, 8: 31, 9: 30, 10: 31, 11: 30, 12: 31}
for test_case in range(1, T + 1):
case = str(input())
year = case[0:4]
month = case[4:6]
day = case[6:8]
answer = ''
if 0 < int(month) < 13 and 0 < int(day) <= days[int(month)]:
answer = year + '/' + month + '/' + day
else:
answer += '-1'
print("#" + str(test_case) + " " + answer)
-
딕셔너리, 문자열 인덱싱을 통해 풀었다.
-
month를 키로, month에 해당하는 day의 최대 값 을 value로 한 딕셔너리 days를 만들었다.
-
테스트 케이스 값을 string으로 전환한 후, 문자열 인덱싱을 통해 year,month,day로 나누었다.
-
year는 모든 값이 유효하므로 검사하지 않아도 되고, month의 경우 1~12 중 하나인지, day는 0 보다 크고 month에 해당하는 값보다 작거나 같은지 검사한다.
-
모든 조건을 만족한다면 '#[test_case] [year]/[month]/[day] '를 출력한다.
-
여기서 주의할 점은 1월의 경우 01 과 같은 방식으로 출력되어야 하기 때문에 int 로 바꿨다가('01' -> 1) str(1 -> '1') 로 바꾼 후 출력하면 안된다.
-
-
만약 하나라도 조건을 만족하지 못하면 '#[test_case] -1'을 출력한다.
-
최초 발행 날짜: 2021-01-16 15:33:00
반응형
'알고리즘 > 파이썬(Python)' 카테고리의 다른 글
[프로그래머스] 타일 장식물 (Python) / DP (0) | 2021.02.25 |
---|---|
[프로그래머스] 탑 (Python) (0) | 2021.02.16 |
[SW Expert Academy] 2043. 서랍의 비밀번호 (Python) (0) | 2021.02.14 |
[프로그래머스] 이중 우선순위 큐 (Python) (0) | 2021.02.14 |
[프로그래머스] 위장 (Python) / 해시 (0) | 2021.02.13 |
Comments