13. 2016년

박재균·2022년 1월 17일
0

알고리즘

목록 보기
13/28

class Solution {
    public String solution(int a, int b)     
    {
        String answer = "";
	
        if ( a == 10)
        {
          b += 1;  
        } 
        else if ( a == 5)
        {
            b += 2;
        }
        else if ( a == 2 || a == 8)
        {
            b+=3;
        }
        else if ( a == 3 || a == 11)
        {
            b+=4;            
        }
        else if ( a == 6)
        {
            b+=5;
        }
        else if ( a == 9 || a == 12)
        {
            b+=6;
        }

        b %= 7;

        switch(b)
        {
            case 1:
                answer = "FRI";
                break;
            case 2:
                answer = "SAT";
                break;            
            case 3:
                answer = "SUN";
                break;
            case 4:                
                answer = "MON";
                break;             
            case 5:
                answer = "TUE";
                break;
            case 6:
                answer = "WED";
                break;
            case 0:
                answer = "THU";
                break;
        }
        return answer;
    }
}

설명할 것도 없이 망한 코드와 아래에 알고리즘을 적용한 코드

class Solution {
    public String solution(int a, int b)     
    {
       String answer = "";
       	// 요일배열 설정 ( 1일이 금요일이기 때문에 1번 인덱스에 FRI 배치 )
        String[] day = { "THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED" };
        
        // 각 월에 해당하는 날짜를 가진 int[] 설정
        int[] date = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
        
        // allDate값 초기화
        int allDate = 0;
        
        // 전달받은 월까지 반복
        for (int i = 0; i < a - 1; i++) {
        // 각월에 해당하는 일수 만큼 allDate에 추가
            allDate += date[i];
        }
        
        // allDate에 전달받은 일수 만큼 추가
        allDate += b;
        
        // allDate를 7로 나눠 해당하는 요일 인덱스값 반환
        answer = day[allDate % 7];

        return answer;
    }
}

알고리즘을 통해 코드를 보다 가볍고 이해하기 쉽게 만들어야 하는 이유를 느낀 문제

profile
열심히 배우겠습니다.

0개의 댓글

관련 채용 정보