Notice
Recent Posts
Recent Comments
Link
jyamethyst21 님의 블로그
백준 1924번- '2007년' (PYTHON 풀이) 본문
문제:

문제 그대로 x, y를 입력받고 그 날짜에 해당하는 요일을 출력하면 된다.
풀이:
x,y = map(int,input().split())
month = [0] * 12
month[0] = 31
month[1] = 28
month[2] = 31
month[3] = 30
month[4] = 31
month[5] = 30
month[6] = 31
month[7] = 31
month[8] = 30
month[9] = 31
month[10] = 30
month[11] = 31
day = ['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN']
total_day = 0
i = 0
while i < x - 1:
total_day += month[i]
i += 1
total_day += (y - 1)
print(day[total_day % 7])
우선 입력을 받고 각 달의 전체 일수를 month라는 리스트에 담는다. 달 순서대로 넣으면 된다. 그 후 요일도 리스트에 담아서 요일을 찾을 수 있게 정리한다.
그리고 1월 1일을 기준으로 입력받은 수가 며칠이나 지났는지 계산하기 위해 total_day라는 변수를 0으로 선언해주고, 반복문을 돌면서 x-1의 값이 되기 전까지 total_day에 각 달에 해당하는 일수를 더해준다. 여기서 1을 뺴주는 이유는 만약 3월 10일이라는 입력값을 받았다면 1~2월달까지만 더해준 뒤에 일수에 해당하는 요일은 따로 계산해줘야하기 떄문에 1을 빼준다.
여기까지 반복문을 돌게 되면 현재 total_day에는 월에 해당하는 전체 일수가 계산되어 있을 것이다. 그럼 이제 3월 10일 중 10일이라는 일수를 계산하기 위해서 'total_day += (y -1)' 를 진행한다. 여기서도 -1을 하는 이유는 1월 1일이 기준이고 오늘은 아직 지나지 않았으니까 -1을 해준다. 그 다음 total_day를 살펴보면, 전체 일수가 얼마나 지났는지 계산이 됐을 것이다. 일주일은 총 7일이며 월요일부터 시작한다. 그렇기 때문에 요일이 담겨있는 리스트에서 7을 나눈 나머지 값에 해당하는 인덱스가 해당 날짜의 요일이 될 것이다.
이를 출력해주면 문제를 해결할 수 있다.
'CODING 💻' 카테고리의 다른 글
| 백준 10039번- '평균 점수' (PYTHON 풀이) (0) | 2025.11.22 |
|---|---|
| 백준 1712번- '손익분기점' (PYTHON 풀이) (0) | 2025.11.21 |
| 백준 2442번- '별 찍기 - 5' (PYTHON 풀이) (0) | 2025.11.19 |
| 백준 2309번- '일곱 난쟁이' (PYTHON 풀이) (0) | 2025.11.18 |
| 백준 4153번- '직각삼각형' (PYTHON 풀이) (0) | 2025.11.17 |
