200912 토 [Programmers] 2016년

kyuhyun·2020년 9월 12일
0

1일1고리즘

목록 보기
1/20
class Solution {
    public String solution(int a, int b) {
        		String answer = "";
		
		/*
		 *  a월 1일 요일 구하기
		 */
		int day = 6;	//금요일
		for(int n=1;n<=a;n++) {
			if(n<9) {
				if (n==1)
					day += 0;
				else if (n==3)
					day += 29;
				else if(n%2==0)
					day += 31;
				else if (n%2==1)
					day += 30;
			} else if (n>=9){
				if(n%2==0)
					day += 30;
				else if (n%2==1)
					day += 31;
			}
		}
		
		/*
		 *	a월 b일 요일 구하기
		 */
		day += b-1;	//a월 1일에 b-1을 더해 a월 b일 맞추기
		day = day % 7;
		switch (day) {
			case 1 : answer = "SUN"; break;
			case 2 : answer = "MON"; break;
			case 3 : answer = "TUE"; break;
			case 4 : answer = "WED"; break;
			case 5 : answer = "THU"; break;
			case 6 : answer = "FRI"; break;
			case 0 : answer = "SAT"; break;
		}
		
		return answer;
    }
}

다른 사람들 풀이 보니까 일 수(31,30,29 ..)랑 요일 이름을 배열에 넣고 풀이하는게 정석에 가까운것 같은데, 난 이걸 무려 for / ifswitch-case로 돌려버렸다.. (Calender 객체를 이용한 사람도 있었다.)
어찌됐든 어떻게든 내 생각으로 풀었다는 데서 만족하기로 하고, 더 좋은 풀이방법도 확인했으니 됐다.😎

오늘부터 1일 1알고리즘(1고리즘...?😏) 시작!🔥

profile
알고리즘은 즐거워

0개의 댓글