프로그래머스 LV1 - 2016년
내 풀이
from collections import deque
def solution(a, b):
day = 0
yo = deque(['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'])
month ={1:31, 2:29, 3:31, 4: 30, 5: 31, 6:30, 7:31, 8:31,9:30,
10:31, 11:30, 12:31}
if a > 1:
for i in range(1,a):
day += month[i]
day = day + b - 1
else:
day = b - 1
num = day % 7
fri_index = yo.index('FRI')
yo.rotate(-num)
return yo[fri_index]
다른 풀이
def getDayName(a,b):
month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
day = ['FRI', 'SAT', 'SUN', 'MON', 'TUE', 'WED', 'THU']
return day[(sum(month[:a-1])+b-1)%7]
풀이 해석
배열의 [:]를 이용하여 slicing 한 다음 그 해당부분의 합을 구하고 b-1을 더한 후 7로 나눈 나머지를 index로 한 요일을 구하였다. index 0부분을 ‘FRI’로 설정하여 인덱스값에 따라 적절히 요일이 변하게 코드를 짰다.
배울 점
- 배열을 slicing 하여 합을 구한 사고
- 바로 나머지를 index로 활용하여 요일을 도출해 내는 사고
댓글남기기