알고리즘 문제 연습

[프로그래머스,Java]2016년

codi-3 2024. 8. 26. 10:13

🔍문제


📊분석

  • 2016년은 윤년 이므로 2월에 마지막날은 29일이다.
  • 1부터 7월까지 홀수달은 31일 을 갖고 짝수달이 30 일을 갖게 된다.
  • 8부터 12월까지는 짝수달이 31일 을 갖고 홀수달은 30일을 갖게 된다

✏️풀이

class Solution {
    public String solution(int a, int b) {
        String answer = "";
   
        //요일 array
        String[] day = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
        //1월 1일 부터의 차이를 구하기 떄문에 각 달, 일 -1
        int month = a - 1;
        int totalDay = b-1;
        
        
        for(int i = 1; i <= month; i++){
            //1~7월까지
            if(i < 8){
            	//2월은 29일 이 마지막
                if(i == 2){
                totalDay += 29;
                //홀수달은 31일이 마지막
                }else if(i % 2!= 0){
                    totalDay += 31;
                //짝수달은 30일이 마지막
                }else{
                    totalDay += 30;}
            //8~12월
            }else{
            	//홀수달은 30일이 마지막
                if(i % 2!= 0){
                    totalDay += 30;
                //짝수달은 31일이 마지막    
                }else{
                    totalDay += 31;}
            }
        }
        //전체요일 일주일중 몇번쨰인지 계산
        int tmp = totalDay % 7;
        //해당 번쨰 요일 계산
        answer = day[tmp];
        return answer;
    }
}