완숙의 블로그

백준 [1924] 2007년 본문

Computer/Algorithm

백준 [1924] 2007년

완숙 2019. 1. 17. 14:40

백준 [1924] 2007년

시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초128 MB50478208261796543.210%

문제

오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.

입력

첫째 줄에 빈 칸을 사이에 두고 x(1≤x≤12)와 y(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 1

 

예제 출력

MON

 

 

내 풀이

input_md = input() # input 초기상태 character
input_md= input_md.split() # 나눠준다.
input_md = list(map(int, input_md)) # 숫자로 형변환 해준다.

day_int = {'0': 'SUN' ,'1' : 'MON', '2' : 'TUE', '3' : 'WED', '4':'THU', '5':'FRI', '6':'SAT'}
# 딕셔너리로 값을 할당해 준다. 이제 숫자로 요일에 접근 가능하다.

lastday = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 각 월의 일 수를 배열로 저장해둔다.

firstweekday = [1]
# 1월의 첫번쨰 요일은 월요일, 1로 저장해둔다.

for i in range(11):
   firstweekday.append((firstweekday[i] + lastday[i]) % 7)
# 반복문을 돌리면서 각 월의 첫날의 요일을 배열로 저장해둔다.

for i in range(12):
    if (input_md[0] == i+1):
        print(day_int[str((firstweekday[i] + input_md[1] - 1)%7)])
        break
# 첫날과 일과의 관계를 적고 이것을 string 형변환을 한뒤 딕셔너리에 집어넣고 출력한다.

 

선생님 풀이

n = input()
n = n.split(' ')
month = int(n[0])
day = int(n[1])
sum = day	
Day = ['SUN','MON','TUE','WED','THU','FRI','SAT']
Month = [0,31,28,31,30,31,30,31,31,30,31,30,31]
for i in range(month):
    sum = sum + Month[i] # 해당월까지 일을 다 더한다.
print(Day[sum%7]) # 7로 나눈 나머지에 해당하는 일을 출력한다.

 

'Computer > Algorithm' 카테고리의 다른 글

백준[1913] 달팽이  (0) 2019.01.22
백준 [10815] 숫자 카드  (0) 2019.01.18
백준 [2749] 피보나치 수 3  (0) 2019.01.15
백준 [2747] 피보나치수 1  (0) 2019.01.15
백준 [1934] 최소공배수  (0) 2019.01.15
Comments