[ Programmers ] 2016년 (Java)

ma.caron_g·2021년 12월 2일
0

Lv.1 - Programmers (완성)

목록 보기
55/74
post-thumbnail

1. Problem 📃

[ 2016년 ]

https://programmers.co.kr/learn/courses/30/lessons/12901



2. Constraint 🔗



3. Solution 🔑

  1. 요일을 출력해줄 요일 배열을 만들고, 2016년의 달 마다 지난 달의 일 수를 담은 배열도 만들어준다.
  2. "2016년 1월 1일은 금요일"이라고 문제에 주어져있다. 입력 받은 월(a) - 1 만큼 일 수를 보내고 b일 지났으므로 일 수를 담은 배열를 더해주고 b또한 더해주어 그 수를 7로 나눈 나머지 만큼 요일을 보내면 a월 b일의 요일을 구할 수 있다.
  3. 총 지난 날을 7로 나누고 그 수에서 1을 빼주면 며칠이 지났는지 구할 수 있다. 이때, 나머지가 0에서 -1이 되는 경우를 대비해 if문을 통해 -1이 될 시 6일이 경과 됐다고 표시.
  4. 요일 배열에서 경과 된 일수를 호출하면 무슨 요일인지 출력된다.

4. Code 💻

public class Solution {
	public String solution(int a, int b) {
		int day = 0;

		String[] week = { "FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
		int[] month = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30};
		for(int i=0; i<a; i++) {
			day += month[i]; 
		}
		day = ((day + b) % 7) - 1;
		if(day== -1) {
			day = 6;
		}
        String answer = week[day];
        return answer;
	}
}
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글