티스토리 뷰
https://www.acmicpc.net/problem/1924
1924번: 2007년
첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
www.acmicpc.net
1. 문제
2. 정답 코드
m, d = map(int, input().split())
MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
DAYS = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
# 1월 1일 월요일
total_days = d # 입력 월의 days에
for n in MONTH[:m-1] :
total_days += n # 입력 월 이전 days (=n) 더하기
index = total_days % 7 - 1
print(DAYS[index])
- DAYS가 'SUN'이 아니라 'MON'으로 시작하는 이유는 1월 1일이 월요일이기 때문에 계산을 편하게 하기 위함이다.
- m월 d일을 모두 days로 변환하였다.
- ex) 2월 5일 => 31 (1월 days) + 5 = 36
- 전체 days를 요일의 개수 7로 모듈러 연산하였다.
- ex) 36 % 7 = 1
- 모듈러 연산 후 1을 빼는 이유는 DAYS 리스트가 1이 아니라, 0부터 시작하기 때문이다.
728x90
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준] 2839번 설탕 배달 파이썬 정답 코드 (0) | 2022.11.18 |
---|---|
[1920번] 수 찾기 파이썬 정답 코드 (0) | 2022.05.01 |
[11650번] 좌표 정렬하기 파이썬 정답 코드 (0) | 2022.04.25 |
백준 단계별로 풀어보기 8단계 기본수학1 벌집 2292번 파이썬 정답 (0) | 2022.01.05 |
백준 단계별로 풀어보기 8단계 기본수학1 손익분기점 1712번 파이썬 정답 (0) | 2022.01.05 |