알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

 

제목과 동일


Think🤔

 

1,3,5,7,8,10,12월 -> 31일
4,6,9,11 -> 30일
2 -> 28

int[] days = [31,28,31,30,31,30,31,31,30,31,30,31];
String[] weeks = ["MON","TUE","WED","THU","FRI","SAT","SUN"];

 

1월0일 부터가 아닌 1일부터 MON이여서 -1 빼고 시작

MON 0 1 2 3 4 5 6 
1월1일 : 0 월 31
2월1일 : 3 목 28
3월1일 : 3 목 31
4월1일 : 6 일 30
5월1일 : 1 화


31 * 7 + 30 * 4 + 28 = 365
1,1 -> [ 월 ]
1,2 -> 화
1,3 -> 수
1,4 -> 목
1,5 -> 금
1,6 -> 토
1,7 -> 일

   14
   28 일 29월 30화 31수

2,1 -> [ 목 ]
2,2 -> 금

2,9 -> 금
2,16 -> 금
2,23 -> 금
2,24 -> 토
2,25 -> 일
2,26 -> 월
2,27 -> 화
2,28 -> 수

3,1 -> 목
3,8 -> 목
3,15 -> 목
3,22 -> 목
3,29 -> 목

4,1 -> [ 일 ]
4,8 -> 일
4,15 -> 일 
4,22 -> 일
4,29 -> 일

5,1 -> [ 화 ]


Solution✍

 

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input = br.readLine();
		StringTokenizer st = new StringTokenizer(input," ");
        
		int a = Integer.parseInt(st.nextToken());
		int b = Integer.parseInt(st.nextToken());
		
		int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31};
		String[] weeks = {"MON","TUE","WED","THU","FRI","SAT","SUN"};
		
		int tot = 0;
		for(int i=0; i<a; i++){
			tot += days[i];
		}
		tot += b;
		
		System.out.println(weeks[(tot-1)%7]);
    }
}

Review🤩

 

바로 생각이 안나면 다 적어보면서 해결하면 됨.


 

+ Recent posts