티스토리 뷰

프로그래머스 12901번 - 2016년

프로그래머스 12901번 - https://programmers.co.kr/learn/courses/30/lessons/12901

 

요구사항

1. 2016년 a월 b일은 무슨 요일인지 반환하라.

2. 2016년 1월 1일은 금요일이며 2016년은 윤년입니다.

 

요구사항 분석 및  풀이과정

1. 2016년 1월 1일부터 2016년 a월 b일까지는 a-1개월이 지나고 b일이 경과한 것이다.

2. a-1 개월을 일로 변환하고, 총 지난 일을 7로 나눈 나머지를 이용하여 요일을 구한다. 

3. 1월 1일 당일은 제외하여야 하므로 총 지난 일 수에서 1일을 빼야 한다.

 

소스코드 작성

class Solution {
    
    public String solution(int a, int b) {
        int[] days = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        final String[] DAY = { "FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU" };
        
        int sum = -1;
        
        for(int month = 1; month < a; month++) {
            sum += days[month - 1];
        }
        
        sum += b;
        return DAY[sum % 7];
    }
}

 

결과

 

소스코드 깃허브 주소

링크

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함