본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 1924 2007년 (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 15.
728x90
반응형

BaekJoon 백준 1924 2007년 문제는 2007년 1월 1일은 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일인지 알아내문제이다. 난이도는 Bronze 1이다. 파이썬으로 구현해보았다. 몇 월이 며칠까지 있는지 잘 체크하여 경우를 나누는 것이 중요한 듯하다.

 

BaekJoon 1924 2007년 문제 정보

출처

- https://www.acmicpc.net/problem/1924

난이도

- 브론즈 1 / Bronze 1

 

2007년 문제 요약

  • 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일인지 구하여 출력한다. (1 ≤ x ≤ 12, 1 ≤ y ≤ 31)
  • 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.
  • x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT 중 하나를 출력한다.

 

문제 풀이 과정

  1. 월 별로 며칠부터 며칠까지 있는지를 튜플에 저장하여 리스트에 저장한다.
  2. 매 달이 1일부터가 아니라 1일 ~ 365일로 누적해서 튜플에 저장한다.
  3. 새 튜플에 요일을 저장한다.
  4. 입력된 x월 y일의 누적 일을 구하여 7로 나눈 나머지를 구한다.
  5. 나머지가 0~6일 때, 해당 날짜의 요일은 일요일~토요일이다.
  6. x월 y일의 요일을 출력한다.

 

코드 및 설명
date = [tuple()] * 13
date[1] = (1, 31)
date[2] = (32, 59)
for i in range(3, 13):
    if i in (3, 5, 7, 8, 10, 12):
        lastDay = 31
    else:
        lastDay = 30
    date[i] = (date[i - 1][1] + 1, date[i - 1][1] + lastDay)

day = ('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT')

x, y = map(int, input().split())
print(day[(date[x][0] + (y - 1)) % 7])

BaekJoon 백준 1924 2007년 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다. 

728x90
반응형

댓글