[문제]
오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.
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
🎨 풀이
💡 전체 코드
day_of_month = [31,28,31,30,31,30,31,31,30,31,30,31]
month, day = map(int,input().split())
day_of_week = ['SUN','MON','TUE','WED','THU','FRI','SAT']
for i in range(month-1):
day += day_of_month[i]
day = day % 7
print(day_of_week[day])
> 핵심 : day를 다 더한후 %7 해서 요일 찾기.
🍦 코드 설명 (실행 순서대로 나열)
# main
day_of_month = [31,28,31,30,31,30,31,31,30,31,30,31]
month, day = map(int,input().split())
day_of_week = ['SUN','MON','TUE','WED','THU','FRI','SAT']
1. day_of_month를 적어둔다.
- day_of_month : 해당 달의 마지막 날을 모아둔 리스트
2. month, day를 입력받는다.
3. day_of_week를 적어둔다.
- day_of_week : 출력 형식에 맞춰 일요일부터 토요일까지 적어둔 리스트
for i in range(month-1):
day += day_of_month[i]
3. 입력받은 달 전까지의 day 수를 다 더해준다.
- (ex) 3월을 입력받았다면, 1월과 2월의 마지막 날인 31과 28을 day에 더해주는 것이다.
day = day % 7
print(day_of_week[day])
4. day % 7 을 해준다.
5. day_of_week[day]를 출력한다.
- (ex) day = 50일 때, 50 % 7 = 1 이 되어 MON을 출력하는 방식이다.

끝~
⭐ 느낀점
> 이건 비슷한 문제 많이 풀어봐서 그런지 크게 어렵지는 않았던것 같다!!
'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 1075번 - 나누기 (파이썬) (0) | 2022.08.28 |
---|---|
[백준] 2576번 - 홀수 (파이썬) (0) | 2022.08.28 |
[백준] 2920번 - 음계 (파이썬) (0) | 2022.08.25 |
[백준] 10988번 - 팰린드롬인지 확인하기 (파이썬) (0) | 2022.08.23 |
[백준] 2441번 - 별 찍기 4 (파이썬) (0) | 2022.08.22 |