슬기로운 연구생활

[프로그래머스] 2016년 본문

슬기로운 코테 생활

[프로그래머스] 2016년

vhrehfdl 2020. 10. 29. 11:39

* 문제

programmers.co.kr/learn/courses/30/lessons/12901#

 

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까

programmers.co.kr

 

* 문제 풀이 

- 첫째, 5월을 입력하면 1월부터 4월까지의 전체 날짜를 다 더해준다.

- 둘째, 전체 날짜의 일을 더해 날짜를 구해준다.

- 셋째, 전체 날짜에 7을 나누어서 나머지 값을 구하고 요일을 출력한다.

 

* 생각

- 8월과 9월의 전체 날짜를 잘 못 입력해서 고민했었다. 또 윤년의 2월달은 29일까지 있는 것을 알게 되었다. 코딩적으로라기 보다는 기본 날짜 상식이 부족해서 고민했었다.

- 뭔가 점점 코드를 더 짧게 만들려는 생각이 들어서 좋은 것 같다.

 

* 코드 

def solution(a, b):
    month_dic = {1:31, 2:29, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31}
    day_dic = {1:"FRI", 2:"SAT", 3:"SUN", 4:"MON", 5:"TUE", 6:"WED", 0:"THU"}
    
    total = 0
    for i in range(1, a):
        total += month_dic[i]
    total += b
    
    day = total % 7
    answer = day_dic[day]
    
    return answer

 

Comments