본문 바로가기

Algorithm/프로그래머스 연습 문제

프로그래머스 / 코딩 테스트 / 2016년

문제 설명

 

 

문제 해결

 

네이버 캘린더 앱에 들어가서 2016년 각 월의 일이 얼마나 있는지 파악한다.

 

 

날이 얼마나 지났는지 계산을 하여 나머지 연산을 이용해 몇요일이 지났는지 구한다.

 

def solve(a, b):
    res = ("FRI","SAT","SUN","MON","TUE","WED","THU")
    day = (31, 29, 31, 30, 31,30, 31, 31, 30, 31, 30, 31)

    return res[(((sum(day[:a]) - (day[a-1] - b)) % 7) -1)]
    
def solution(a, b):
    answer = solve(a,b)
    return answer

 

물론 억지로 한 줄을 만들 수 있다.

 

def solve(a, b):
    return ("FRI","SAT","SUN","MON","TUE","WED","THU")[(((sum((31, 29, 31, 30, 31,30, 31, 31, 30, 31, 30, 31)[:a]) - ((31, 29, 31, 30, 31,30, 31, 31, 30, 31, 30, 31)[a-1] - b)) % 7) -1)]
    
def solution(a, b):
    answer = solve(a,b)
    return answer